// Copyright (c) 2017-2025 Tencent. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package v20200217

import (
    tcerr "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/errors"
    tchttp "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/http"
    "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/json"
)

// Predefined struct for user
type AcknowledgeMessageRequestParams struct {
	// Unique ID used to identify the message, which can be obtained from the returned value of `receiveMessage`.
	MessageId *string `json:"MessageId,omitnil,omitempty" name:"MessageId"`

	// Topic name, which can be obtained from the returned value of `receiveMessage` and is better to be the full path of the topic, such as `tenant/namespace/topic`. If it is not specified, `public/default` will be used by default.
	AckTopic *string `json:"AckTopic,omitnil,omitempty" name:"AckTopic"`

	// Subscriber name, which can be obtained from the returned value of `receiveMessage`. Make sure that it is the same as the subscriber name identified in `receiveMessage`; otherwise, the received message cannot be correctly acknowledged.
	SubName *string `json:"SubName,omitnil,omitempty" name:"SubName"`
}

type AcknowledgeMessageRequest struct {
	*tchttp.BaseRequest
	
	// Unique ID used to identify the message, which can be obtained from the returned value of `receiveMessage`.
	MessageId *string `json:"MessageId,omitnil,omitempty" name:"MessageId"`

	// Topic name, which can be obtained from the returned value of `receiveMessage` and is better to be the full path of the topic, such as `tenant/namespace/topic`. If it is not specified, `public/default` will be used by default.
	AckTopic *string `json:"AckTopic,omitnil,omitempty" name:"AckTopic"`

	// Subscriber name, which can be obtained from the returned value of `receiveMessage`. Make sure that it is the same as the subscriber name identified in `receiveMessage`; otherwise, the received message cannot be correctly acknowledged.
	SubName *string `json:"SubName,omitnil,omitempty" name:"SubName"`
}

func (r *AcknowledgeMessageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *AcknowledgeMessageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "MessageId")
	delete(f, "AckTopic")
	delete(f, "SubName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AcknowledgeMessageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type AcknowledgeMessageResponseParams struct {
	// If "", it indicates that there is no error return. otherwise return specific error information.
	ErrorMsg *string `json:"ErrorMsg,omitnil,omitempty" name:"ErrorMsg"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type AcknowledgeMessageResponse struct {
	*tchttp.BaseResponse
	Response *AcknowledgeMessageResponseParams `json:"Response"`
}

func (r *AcknowledgeMessageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *AcknowledgeMessageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type BindCluster struct {
	// Name of a physical cluster.
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`
}

type CertificateInfo struct {
	// Specifies the id in SSL certificate management.
	CertificateId *string `json:"CertificateId,omitnil,omitempty" name:"CertificateId"`

	// Certificate expiration time.
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Specifies the domain name bound to the certificate.
	DomainName *string `json:"DomainName,omitnil,omitempty" name:"DomainName"`

	// Certificate status: 0 indicates issued.
	// Expiring soon.
	// Not activated.
	// 3. indicates expired.
	// Indicates the unavailability.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Certificate type: 0: root certificate, 1: server certificate.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// TencentCloud: SSL certificate. Default: TDMQ official Default certificate.
	Origin *string `json:"Origin,omitnil,omitempty" name:"Origin"`

	// Certificate addition/update time.
	ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"`
}

// Predefined struct for user
type ClearCmqQueueRequestParams struct {
	// Queue name, unique under the same account in a single region. queue name is a string of no more than 64 characters, beginning with a letter, the rest may contain letters, digits, and hyphens (-).
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`
}

type ClearCmqQueueRequest struct {
	*tchttp.BaseRequest
	
	// Queue name, unique under the same account in a single region. queue name is a string of no more than 64 characters, beginning with a letter, the rest may contain letters, digits, and hyphens (-).
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`
}

func (r *ClearCmqQueueRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ClearCmqQueueRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "QueueName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ClearCmqQueueRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ClearCmqQueueResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ClearCmqQueueResponse struct {
	*tchttp.BaseResponse
	Response *ClearCmqQueueResponseParams `json:"Response"`
}

func (r *ClearCmqQueueResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ClearCmqQueueResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ClearCmqSubscriptionFilterTagsRequestParams struct {
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscription name, which must be unique under the same account and same topic in a single region. the name is a string of no more than 64 characters, beginning with a letter, and the remaining part may contain letters, numbers, and hyphens (-).
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`
}

type ClearCmqSubscriptionFilterTagsRequest struct {
	*tchttp.BaseRequest
	
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscription name, which must be unique under the same account and same topic in a single region. the name is a string of no more than 64 characters, beginning with a letter, and the remaining part may contain letters, numbers, and hyphens (-).
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`
}

func (r *ClearCmqSubscriptionFilterTagsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ClearCmqSubscriptionFilterTagsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	delete(f, "SubscriptionName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ClearCmqSubscriptionFilterTagsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ClearCmqSubscriptionFilterTagsResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ClearCmqSubscriptionFilterTagsResponse struct {
	*tchttp.BaseResponse
	Response *ClearCmqSubscriptionFilterTagsResponseParams `json:"Response"`
}

func (r *ClearCmqSubscriptionFilterTagsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ClearCmqSubscriptionFilterTagsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type ClientSubscriptionInfo struct {
	// Client ID
	ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"`

	// Client IP.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientAddr *string `json:"ClientAddr,omitnil,omitempty" name:"ClientAddr"`

	// Subscribed topic.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Subscription expression.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubString *string `json:"SubString,omitnil,omitempty" name:"SubString"`

	// Subscription method.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpressionType *string `json:"ExpressionType,omitnil,omitempty" name:"ExpressionType"`
}

type Cluster struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Cluster name.
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Remarks.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Number of access points
	EndPointNum *int64 `json:"EndPointNum,omitnil,omitempty" name:"EndPointNum"`

	// Creation time
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Whether the cluster is healthy. 1: healthy; 0: exceptional
	Healthy *int64 `json:"Healthy,omitnil,omitempty" name:"Healthy"`

	// Cluster health information
	// Note: this field may return null, indicating that no valid values can be obtained.
	HealthyInfo *string `json:"HealthyInfo,omitnil,omitempty" name:"HealthyInfo"`

	// Cluster status. 0: creating; 1: normal; 2: terminating; 3: deleted; 4. isolated; 5. creation failed; 6: deletion failed
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Maximum number of namespaces
	MaxNamespaceNum *int64 `json:"MaxNamespaceNum,omitnil,omitempty" name:"MaxNamespaceNum"`

	// Maximum number of topics
	MaxTopicNum *int64 `json:"MaxTopicNum,omitnil,omitempty" name:"MaxTopicNum"`

	// Maximum QPS
	MaxQps *int64 `json:"MaxQps,omitnil,omitempty" name:"MaxQps"`

	// Maximum message retention period in seconds
	MessageRetentionTime *int64 `json:"MessageRetentionTime,omitnil,omitempty" name:"MessageRetentionTime"`

	// Maximum storage capacity
	MaxStorageCapacity *int64 `json:"MaxStorageCapacity,omitnil,omitempty" name:"MaxStorageCapacity"`

	// Cluster version
	// Note: this field may return null, indicating that no valid values can be obtained.
	Version *string `json:"Version,omitnil,omitempty" name:"Version"`

	// Public network access point
	// Note: this field may return null, indicating that no valid values can be obtained.
	PublicEndPoint *string `json:"PublicEndPoint,omitnil,omitempty" name:"PublicEndPoint"`

	// VPC access point
	// Note: this field may return null, indicating that no valid values can be obtained.
	VpcEndPoint *string `json:"VpcEndPoint,omitnil,omitempty" name:"VpcEndPoint"`

	// Number of namespaces
	// Note: this field may return null, indicating that no valid values can be obtained.
	NamespaceNum *int64 `json:"NamespaceNum,omitnil,omitempty" name:"NamespaceNum"`

	// Limit of used storage in MB
	// Note: this field may return null, indicating that no valid values can be obtained.
	UsedStorageBudget *int64 `json:"UsedStorageBudget,omitnil,omitempty" name:"UsedStorageBudget"`

	// Maximum message production rate in messages
	// Note: this field may return null, indicating that no valid values can be obtained.
	MaxPublishRateInMessages *int64 `json:"MaxPublishRateInMessages,omitnil,omitempty" name:"MaxPublishRateInMessages"`

	// Maximum message push rate in messages
	// Note: this field may return null, indicating that no valid values can be obtained.
	MaxDispatchRateInMessages *int64 `json:"MaxDispatchRateInMessages,omitnil,omitempty" name:"MaxDispatchRateInMessages"`

	// Maximum message production rate in bytes
	// Note: this field may return null, indicating that no valid values can be obtained.
	MaxPublishRateInBytes *int64 `json:"MaxPublishRateInBytes,omitnil,omitempty" name:"MaxPublishRateInBytes"`

	// Maximum message push rate in bytes
	// Note: this field may return null, indicating that no valid values can be obtained.
	MaxDispatchRateInBytes *int64 `json:"MaxDispatchRateInBytes,omitnil,omitempty" name:"MaxDispatchRateInBytes"`

	// Number of created topics
	// Note: this field may return null, indicating that no valid values can be obtained.
	TopicNum *int64 `json:"TopicNum,omitnil,omitempty" name:"TopicNum"`

	// Maximum message delay in seconds
	// Note: this field may return null, indicating that no valid values can be obtained.
	MaxMessageDelayInSeconds *int64 `json:"MaxMessageDelayInSeconds,omitnil,omitempty" name:"MaxMessageDelayInSeconds"`

	// Whether to enable public network access. If this parameter is left empty, the feature will be enabled by default
	// Note: this field may return null, indicating that no valid values can be obtained.
	PublicAccessEnabled *bool `json:"PublicAccessEnabled,omitnil,omitempty" name:"PublicAccessEnabled"`

	// Tag
	// Note: this field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Billing mode:
	// `0`: Pay-as-you-go
	// `1`: Monthly subscription
	// Note: This field may return `null`, indicating that no valid values can be obtained.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Project ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Project name
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProjectName *string `json:"ProjectName,omitnil,omitempty" name:"ProjectName"`

	// Specifies whether the pro edition instance can be upgraded.
	UpgradeProInstance *bool `json:"UpgradeProInstance,omitnil,omitempty" name:"UpgradeProInstance"`
}

type CmqDeadLetterPolicy struct {
	// Dead letter queue.
	DeadLetterQueue *string `json:"DeadLetterQueue,omitnil,omitempty" name:"DeadLetterQueue"`

	// Dead letter queue policy. 0: maximum number of receipt. 1: maximum unconsumed time.
	Policy *uint64 `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Maximum unconsumed expiration time. Required if policy is 1. Range: 300-43,200 seconds, must be less than the maximum message retention time MsgRetentionSeconds.
	MaxTimeToLive *uint64 `json:"MaxTimeToLive,omitnil,omitempty" name:"MaxTimeToLive"`

	// Maximum number of receipt. required when Policy is 0. value range: 1 to 1000.
	MaxReceiveCount *uint64 `json:"MaxReceiveCount,omitnil,omitempty" name:"MaxReceiveCount"`
}

type CmqDeadLetterSource struct {
	// Message queue ID.
	// Note: this field may return null, indicating that no valid values can be obtained.
	QueueId *string `json:"QueueId,omitnil,omitempty" name:"QueueId"`

	// Message queue name.
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`
}

type CmqQueue struct {
	// Message queue ID.
	QueueId *string `json:"QueueId,omitnil,omitempty" name:"QueueId"`

	// Message queue name.
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Limit on the number of messages produced per second. The size of consumed messages is 1.1 times this value.
	Qps *uint64 `json:"Qps,omitnil,omitempty" name:"Qps"`

	// Bandwidth limit.
	Bps *uint64 `json:"Bps,omitnil,omitempty" name:"Bps"`

	// Specifies the maximum retention time for in-flight messages, which must be less than the message retention period.
	MaxDelaySeconds *uint64 `json:"MaxDelaySeconds,omitnil,omitempty" name:"MaxDelaySeconds"`

	// Maximum number of heaped messages. The value range is 1,000,000–10,000,000 during the beta test and can be 1,000,000–1,000,000,000 after the product is officially released. The default value is 10,000,000 during the beta test and will be 100,000,000 after the product is officially released.
	MaxMsgHeapNum *uint64 `json:"MaxMsgHeapNum,omitnil,omitempty" name:"MaxMsgHeapNum"`

	// Long polling waiting time for message receipt. Value range 0-30 seconds, default value 0.
	PollingWaitSeconds *uint64 `json:"PollingWaitSeconds,omitnil,omitempty" name:"PollingWaitSeconds"`

	// Message retention period. The value range is 60-1,296,000 seconds (1 min-15 days), with a default value of 345,600 seconds (4 days).
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Message visibility timeout period. The value range is 1-43,200 seconds (within 12 hours), with a default value of 30.
	VisibilityTimeout *uint64 `json:"VisibilityTimeout,omitnil,omitempty" name:"VisibilityTimeout"`

	// Maximum message length. Range: 1,024-1,048,576 bytes (i.e., 1K-1,024K). Default value is 65,536.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// Maximum message backtracking time for backtracking queues, range 0-43,200 seconds. 0 means message backtracking is not enabled.
	RewindSeconds *uint64 `json:"RewindSeconds,omitnil,omitempty" name:"RewindSeconds"`

	// Creation time of queues. Returns a Unix timestamp, accurate to milliseconds.
	CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// The last time the queue attribute was modified. Returns a Unix timestamp, accurate to milliseconds.
	LastModifyTime *uint64 `json:"LastModifyTime,omitnil,omitempty" name:"LastModifyTime"`

	// Total number of active messages (not being consumed) in queue, an approximate value.
	ActiveMsgNum *uint64 `json:"ActiveMsgNum,omitnil,omitempty" name:"ActiveMsgNum"`

	// Total number of inactive messages (being consumed) in queue, an approximate value.
	InactiveMsgNum *uint64 `json:"InactiveMsgNum,omitnil,omitempty" name:"InactiveMsgNum"`

	// Number of delayed messages.
	// Note: this field may return null, indicating that no valid values can be obtained.
	DelayMsgNum *uint64 `json:"DelayMsgNum,omitnil,omitempty" name:"DelayMsgNum"`

	// Number of retained messages which have been deleted by the `DelMsg` API but are still within their rewind time range.
	// Note: this field may return null, indicating that no valid values can be obtained.
	RewindMsgNum *uint64 `json:"RewindMsgNum,omitnil,omitempty" name:"RewindMsgNum"`

	// Minimum unconsumed time of message in seconds.
	// Note: this field may return null, indicating that no valid values can be obtained.
	MinMsgTime *uint64 `json:"MinMsgTime,omitnil,omitempty" name:"MinMsgTime"`

	// Transaction message queue. true: transaction message type; false: other message types.
	// Note: this field may return null, indicating that no valid values can be obtained.
	Transaction *bool `json:"Transaction,omitnil,omitempty" name:"Transaction"`

	// Dead letter queue.
	// Note: this field may return null, indicating that no valid values can be obtained.
	DeadLetterSource []*CmqDeadLetterSource `json:"DeadLetterSource,omitnil,omitempty" name:"DeadLetterSource"`

	// Dead letter queue policy.
	// Note: this field may return null, indicating that no valid values can be obtained.
	DeadLetterPolicy *CmqDeadLetterPolicy `json:"DeadLetterPolicy,omitnil,omitempty" name:"DeadLetterPolicy"`

	// Transaction message policy.
	// Note: this field may return null, indicating that no valid values can be obtained.
	TransactionPolicy *CmqTransactionPolicy `json:"TransactionPolicy,omitnil,omitempty" name:"TransactionPolicy"`

	// Creator `Uin`.
	// Note: this field may return null, indicating that no valid values can be obtained.
	CreateUin *uint64 `json:"CreateUin,omitnil,omitempty" name:"CreateUin"`

	// Associated tag.
	// Note: this field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Message trace. true: enabled; false: not enabled
	// Note: this field may return null, indicating that no valid values can be obtained.
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`

	// Tenant ID
	TenantId *string `json:"TenantId,omitnil,omitempty" name:"TenantId"`

	// Specifies the namespace name.
	NamespaceName *string `json:"NamespaceName,omitnil,omitempty" name:"NamespaceName"`

	// Cluster status. 0: Creating, 1: Normal, 2: Deleting, 3: Deleted, 4: Isolating, 5: Creation failed, 6: Deletion failed
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Maximum Number of Unacknowledged Messages
	MaxUnackedMsgNum *int64 `json:"MaxUnackedMsgNum,omitnil,omitempty" name:"MaxUnackedMsgNum"`

	// Maximum Message Backlog Size (bytes)
	MaxMsgBacklogSize *int64 `json:"MaxMsgBacklogSize,omitnil,omitempty" name:"MaxMsgBacklogSize"`

	// Queue retrospective storage space. Value range: 1024 MB to 10240 MB. 0 indicates disabled.
	RetentionSizeInMB *uint64 `json:"RetentionSizeInMB,omitnil,omitempty" name:"RetentionSizeInMB"`
}

type CmqSubscription struct {
	// Subscription name, which must be unique under the same account and same topic in a single region. the name is a string of no more than 64 characters, beginning with a letter, and the remaining part may contain letters, numbers, and hyphens (-).
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Subscription ID. The subscription ID is used when monitoring data is pulled.
	SubscriptionId *string `json:"SubscriptionId,omitnil,omitempty" name:"SubscriptionId"`

	// Subscription owner `APPID`.
	// Note: this field may return null, indicating that no valid values can be obtained.
	TopicOwner *uint64 `json:"TopicOwner,omitnil,omitempty" name:"TopicOwner"`

	// The number of messages waiting for shipping for this subscription.
	MsgCount *uint64 `json:"MsgCount,omitnil,omitempty" name:"MsgCount"`

	// The last time the subscription attribute was modified. Returns a Unix timestamp, accurate to milliseconds.
	LastModifyTime *uint64 `json:"LastModifyTime,omitnil,omitempty" name:"LastModifyTime"`

	// The time when the subscription was created. Returns a Unix timestamp, accurate to milliseconds.
	CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Filtering policy for subscribing to and receiving messages.
	// Note: this field may return null, indicating that no valid values can be obtained.
	BindingKey []*string `json:"BindingKey,omitnil,omitempty" name:"BindingKey"`

	// The endpoint that receives notifications is differentiated by protocol: For HTTP, the endpoint must start with http://, and the host can be a domain name or IP; for queue, fill in queueName.
	Endpoint *string `json:"Endpoint,omitnil,omitempty" name:"Endpoint"`

	// Describes the filtering policy selected by users when creating subscriptions.
	// filterType = 1 indicates Tag filtering when users use filterTag.
	// filterType = 2 indicates user use bindingKey for filtering.
	FilterTags []*string `json:"FilterTags,omitnil,omitempty" name:"FilterTags"`

	// The subscription protocol, currently supports two protocols: HTTP and queue. When the HTTP protocol is used, users need to set up their own web server to accept messages. When the queue protocol is used, messages will automatically be pushed to CMQ queues, and users can pull messages concurrently.
	Protocol *string `json:"Protocol,omitnil,omitempty" name:"Protocol"`

	// Specifies the CMQ push server retry policy when an error occurs while pushing messages to an endpoint. valid values:.
	// BACKOFF_RETRY, backoff retry. retry at regular intervals, discard the message after a certain number of retries, and continue to push the next message.
	// (2) EXPONENTIAL_DECAY_RETRY, EXPONENTIAL DECAY RETRY. the interval between retries increases exponentially, for example starting at 1s, followed by 2s, 4s, 8s... since the Topic message period is one day, RETRY for at most one day then discard the message. default value is EXPONENTIAL_DECAY_RETRY.
	NotifyStrategy *string `json:"NotifyStrategy,omitnil,omitempty" name:"NotifyStrategy"`

	// The format of the push content. Values: (1) JSON; (2) SIMPLIFIED, i.e., raw format. If protocol is queue, the value must be SIMPLIFIED. If protocol is HTTP, both values are acceptable, with the default being JSON.
	NotifyContentFormat *string `json:"NotifyContentFormat,omitnil,omitempty" name:"NotifyContentFormat"`

	// Topic Name of the Subscription
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
}

type CmqTopic struct {
	// Topic ID.
	TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Maximum lifetime of messages in a topic. After the time specified by this parameter has elapsed since sending to this topic, the message will be deleted whether or not it has been successfully pushed to the user. Measured in seconds and fixed at one day (86,400 seconds). This attribute cannot be modified.
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Maximum message length. value range: 1024-1048576 bytes (1-1024 kb). default value: 1048576.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// Number of messages published per second.
	Qps *uint64 `json:"Qps,omitnil,omitempty" name:"Qps"`

	// Describes the filtering policy selected by users when creating subscriptions.
	// FilterType = 1 means when users use Tag filtering with FilterTag.
	// FilterType = 2 indicates user use BindingKey for filtering.
	FilterType *uint64 `json:"FilterType,omitnil,omitempty" name:"FilterType"`

	// Topic creation time. Returns a Unix timestamp, accurate to milliseconds.
	CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// The last time the topic attribute was modified. Returns a Unix timestamp, accurate to milliseconds.
	LastModifyTime *uint64 `json:"LastModifyTime,omitnil,omitempty" name:"LastModifyTime"`

	// Number of messages in the current topic (message backlog).
	MsgCount *uint64 `json:"MsgCount,omitnil,omitempty" name:"MsgCount"`

	// Creator `Uin`. The `resource` field for CAM authentication is composed of this field.
	// Note: this field may return null, indicating that no valid values can be obtained.
	CreateUin *uint64 `json:"CreateUin,omitnil,omitempty" name:"CreateUin"`

	// Associated tag.
	// Note: this field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Message trace. true: enabled; false: not enabled
	// Note: this field may return null, indicating that no valid values can be obtained.
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`

	// Tenant ID
	TenantId *string `json:"TenantId,omitnil,omitempty" name:"TenantId"`

	// Specifies the namespace name.
	NamespaceName *string `json:"NamespaceName,omitnil,omitempty" name:"NamespaceName"`

	// Cluster status. 0: Creating, 1: Normal, 2: Deleting, 3: Deleted, 4: Isolating, 5: Creation failed, 6: Deletion failed
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// 0: Pulsar, 1: RocketMQ
	BrokerType *int64 `json:"BrokerType,omitnil,omitempty" name:"BrokerType"`

	// Number of Subscriptions
	SubscriptionCount *int64 `json:"SubscriptionCount,omitnil,omitempty" name:"SubscriptionCount"`
}

type CmqTransactionPolicy struct {
	// First recheck time.
	FirstQueryInterval *uint64 `json:"FirstQueryInterval,omitnil,omitempty" name:"FirstQueryInterval"`

	// Maximum query times.
	MaxQueryCount *uint64 `json:"MaxQueryCount,omitnil,omitempty" name:"MaxQueryCount"`
}

type Consumer struct {
	// The time when the consumer started connecting.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConnectedSince *string `json:"ConnectedSince,omitnil,omitempty" name:"ConnectedSince"`

	// Consumer address.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerAddr *string `json:"ConsumerAddr,omitnil,omitempty" name:"ConsumerAddr"`

	// Consumer name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerName *string `json:"ConsumerName,omitnil,omitempty" name:"ConsumerName"`

	// Consumer version.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientVersion *string `json:"ClientVersion,omitnil,omitempty" name:"ClientVersion"`

	// Serial number of the topic partition connected to the consumer.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Partition *int64 `json:"Partition,omitnil,omitempty" name:"Partition"`
}

type ConsumerLog struct {
	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Consumption group.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Consumer name.
	ConsumerName *string `json:"ConsumerName,omitnil,omitempty" name:"ConsumerName"`

	// Consumption time.
	ConsumeTime *string `json:"ConsumeTime,omitnil,omitempty" name:"ConsumeTime"`

	// Consumer client address.
	ConsumerAddr *string `json:"ConsumerAddr,omitnil,omitempty" name:"ConsumerAddr"`

	// Consumption time (milliseconds).
	ConsumeUseTime *uint64 `json:"ConsumeUseTime,omitnil,omitempty" name:"ConsumeUseTime"`

	// Consumption status.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`
}

type ConsumerLogs struct {
	// Record count.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Consumption log.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerLogSets []*ConsumerLog `json:"ConsumerLogSets,omitnil,omitempty" name:"ConsumerLogSets"`
}

type ConsumersSchedule struct {
	// ID of the current partition.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Partitions *int64 `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// The number of messages.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NumberOfEntries *uint64 `json:"NumberOfEntries,omitnil,omitempty" name:"NumberOfEntries"`

	// The number of heaped messages.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgBacklog *uint64 `json:"MsgBacklog,omitnil,omitempty" name:"MsgBacklog"`

	// The total number of messages delivered by the consumer per second.
	MsgRateOut *string `json:"MsgRateOut,omitnil,omitempty" name:"MsgRateOut"`

	// The size (in bytes) of messages consumed by the consumer per second.
	MsgThroughputOut *string `json:"MsgThroughputOut,omitnil,omitempty" name:"MsgThroughputOut"`

	// Percentage of messages discarded due to timeout.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgRateExpired *string `json:"MsgRateExpired,omitnil,omitempty" name:"MsgRateExpired"`
}

// Predefined struct for user
type CreateClusterRequestParams struct {
	// Specifies the cluster name, which does not support chinese characters and special characters other than hyphens and underscores, with a length of no more than 64 characters.
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// ID of your dedicated physical cluster. If it is not passed in, cluster resources will be created in a public cluster by default.
	BindClusterId *uint64 `json:"BindClusterId,omitnil,omitempty" name:"BindClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Cluster tag list (deprecated).
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Whether to enable public network access. If this parameter is left empty, the feature will be enabled by default
	PublicAccessEnabled *bool `json:"PublicAccessEnabled,omitnil,omitempty" name:"PublicAccessEnabled"`
}

type CreateClusterRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the cluster name, which does not support chinese characters and special characters other than hyphens and underscores, with a length of no more than 64 characters.
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// ID of your dedicated physical cluster. If it is not passed in, cluster resources will be created in a public cluster by default.
	BindClusterId *uint64 `json:"BindClusterId,omitnil,omitempty" name:"BindClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Cluster tag list (deprecated).
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Whether to enable public network access. If this parameter is left empty, the feature will be enabled by default
	PublicAccessEnabled *bool `json:"PublicAccessEnabled,omitnil,omitempty" name:"PublicAccessEnabled"`
}

func (r *CreateClusterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterName")
	delete(f, "BindClusterId")
	delete(f, "Remark")
	delete(f, "Tags")
	delete(f, "PublicAccessEnabled")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateClusterResponseParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateClusterResponse struct {
	*tchttp.BaseResponse
	Response *CreateClusterResponseParams `json:"Response"`
}

func (r *CreateClusterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateClusterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCmqQueueRequestParams struct {
	// Queue name, which is unique under the same account in a single region. It is a string of up to 64 characters. It can contain letters, digits, and hyphens (-) and must start with a letter.
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Maximum number of heaped messages. The value range is 1,000,000–10,000,000 during the beta test and can be 1,000,000–1,000,000,000 after the product is officially released. The default value is 10,000,000 during the beta test and will be 100,000,000 after the product is officially released.
	MaxMsgHeapNum *uint64 `json:"MaxMsgHeapNum,omitnil,omitempty" name:"MaxMsgHeapNum"`

	// Long polling wait time for message reception. Value range: 0–30 seconds. Default value: 0.
	PollingWaitSeconds *uint64 `json:"PollingWaitSeconds,omitnil,omitempty" name:"PollingWaitSeconds"`

	// Message visibility timeout period. Value range: 1–43200 seconds (i.e., 12 hours). Default value: 30.
	VisibilityTimeout *uint64 `json:"VisibilityTimeout,omitnil,omitempty" name:"VisibilityTimeout"`

	// Maximum message length. value range: 1024-1048576 Byte (1-1024K). default value: 1048576.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// The max period during which a message is retained before it is automatically acknowledged. Value range: 30-43,200 seconds (30 seconds to 12 hours). Default value: 3600 seconds (1 hour).
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Rewindable time of messages in the queue. Value range: 0-1,296,000s (if message rewind is enabled). The value “0” indicates that message rewind is not enabled.
	RewindSeconds *uint64 `json:"RewindSeconds,omitnil,omitempty" name:"RewindSeconds"`

	// 1: transaction queue; 0: general queue
	Transaction *uint64 `json:"Transaction,omitnil,omitempty" name:"Transaction"`

	// First lookback interval
	FirstQueryInterval *uint64 `json:"FirstQueryInterval,omitnil,omitempty" name:"FirstQueryInterval"`

	// Maximum number of lookbacks
	MaxQueryCount *uint64 `json:"MaxQueryCount,omitnil,omitempty" name:"MaxQueryCount"`

	// Dead letter queue name
	DeadLetterQueueName *string `json:"DeadLetterQueueName,omitnil,omitempty" name:"DeadLetterQueueName"`

	// Dead letter policy. 0: message has been consumed multiple times but not deleted; 1: `Time-To-Live` has elapsed
	Policy *uint64 `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Maximum receipt times. Value range: 1–1000
	MaxReceiveCount *uint64 `json:"MaxReceiveCount,omitnil,omitempty" name:"MaxReceiveCount"`

	// Maximum period in seconds before an unconsumed message expires, which is required if `policy` is 1. Value range: 300–43200. This value should be smaller than `msgRetentionSeconds` (maximum message retention period)
	MaxTimeToLive *uint64 `json:"MaxTimeToLive,omitnil,omitempty" name:"MaxTimeToLive"`

	// Whether to enable message trace. true: yes; false: no. If this field is not configured, the feature will not be enabled
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`

	// Tag array.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Queue storage space configured for message rewind. Value range: 10,240-512,000 MB (if message rewind is enabled). The value “0” indicates that message rewind is not enabled.
	RetentionSizeInMB *uint64 `json:"RetentionSizeInMB,omitnil,omitempty" name:"RetentionSizeInMB"`
}

type CreateCmqQueueRequest struct {
	*tchttp.BaseRequest
	
	// Queue name, which is unique under the same account in a single region. It is a string of up to 64 characters. It can contain letters, digits, and hyphens (-) and must start with a letter.
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Maximum number of heaped messages. The value range is 1,000,000–10,000,000 during the beta test and can be 1,000,000–1,000,000,000 after the product is officially released. The default value is 10,000,000 during the beta test and will be 100,000,000 after the product is officially released.
	MaxMsgHeapNum *uint64 `json:"MaxMsgHeapNum,omitnil,omitempty" name:"MaxMsgHeapNum"`

	// Long polling wait time for message reception. Value range: 0–30 seconds. Default value: 0.
	PollingWaitSeconds *uint64 `json:"PollingWaitSeconds,omitnil,omitempty" name:"PollingWaitSeconds"`

	// Message visibility timeout period. Value range: 1–43200 seconds (i.e., 12 hours). Default value: 30.
	VisibilityTimeout *uint64 `json:"VisibilityTimeout,omitnil,omitempty" name:"VisibilityTimeout"`

	// Maximum message length. value range: 1024-1048576 Byte (1-1024K). default value: 1048576.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// The max period during which a message is retained before it is automatically acknowledged. Value range: 30-43,200 seconds (30 seconds to 12 hours). Default value: 3600 seconds (1 hour).
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Rewindable time of messages in the queue. Value range: 0-1,296,000s (if message rewind is enabled). The value “0” indicates that message rewind is not enabled.
	RewindSeconds *uint64 `json:"RewindSeconds,omitnil,omitempty" name:"RewindSeconds"`

	// 1: transaction queue; 0: general queue
	Transaction *uint64 `json:"Transaction,omitnil,omitempty" name:"Transaction"`

	// First lookback interval
	FirstQueryInterval *uint64 `json:"FirstQueryInterval,omitnil,omitempty" name:"FirstQueryInterval"`

	// Maximum number of lookbacks
	MaxQueryCount *uint64 `json:"MaxQueryCount,omitnil,omitempty" name:"MaxQueryCount"`

	// Dead letter queue name
	DeadLetterQueueName *string `json:"DeadLetterQueueName,omitnil,omitempty" name:"DeadLetterQueueName"`

	// Dead letter policy. 0: message has been consumed multiple times but not deleted; 1: `Time-To-Live` has elapsed
	Policy *uint64 `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Maximum receipt times. Value range: 1–1000
	MaxReceiveCount *uint64 `json:"MaxReceiveCount,omitnil,omitempty" name:"MaxReceiveCount"`

	// Maximum period in seconds before an unconsumed message expires, which is required if `policy` is 1. Value range: 300–43200. This value should be smaller than `msgRetentionSeconds` (maximum message retention period)
	MaxTimeToLive *uint64 `json:"MaxTimeToLive,omitnil,omitempty" name:"MaxTimeToLive"`

	// Whether to enable message trace. true: yes; false: no. If this field is not configured, the feature will not be enabled
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`

	// Tag array.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Queue storage space configured for message rewind. Value range: 10,240-512,000 MB (if message rewind is enabled). The value “0” indicates that message rewind is not enabled.
	RetentionSizeInMB *uint64 `json:"RetentionSizeInMB,omitnil,omitempty" name:"RetentionSizeInMB"`
}

func (r *CreateCmqQueueRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCmqQueueRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "QueueName")
	delete(f, "MaxMsgHeapNum")
	delete(f, "PollingWaitSeconds")
	delete(f, "VisibilityTimeout")
	delete(f, "MaxMsgSize")
	delete(f, "MsgRetentionSeconds")
	delete(f, "RewindSeconds")
	delete(f, "Transaction")
	delete(f, "FirstQueryInterval")
	delete(f, "MaxQueryCount")
	delete(f, "DeadLetterQueueName")
	delete(f, "Policy")
	delete(f, "MaxReceiveCount")
	delete(f, "MaxTimeToLive")
	delete(f, "Trace")
	delete(f, "Tags")
	delete(f, "RetentionSizeInMB")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCmqQueueRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCmqQueueResponseParams struct {
	// `queueId` of a successfully created queue
	QueueId *string `json:"QueueId,omitnil,omitempty" name:"QueueId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateCmqQueueResponse struct {
	*tchttp.BaseResponse
	Response *CreateCmqQueueResponseParams `json:"Response"`
}

func (r *CreateCmqQueueResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCmqQueueResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCmqSubscribeRequestParams struct {
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscription name, uniquely identifies under the same topic of the same account in a single region. subscription name is a string of no more than 64 characters, beginning with a letter, the remaining part can contain letters, digits, and hyphens (-).
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Subscription protocol. Currently, two protocols are supported: HTTP and queue. To use the HTTP protocol, you need to build your own web server to receive messages. With the queue protocol, messages are automatically pushed to a CMQ queue and you can pull them concurrently.
	Protocol *string `json:"Protocol,omitnil,omitempty" name:"Protocol"`

	// `Endpoint` for notification receipt, which is distinguished by `Protocol`. For `http`, `Endpoint` must begin with `http://` and `host` can be a domain name or IP. For `Queue`, enter `QueueName`. Note that currently the push service cannot push messages to a VPC; therefore, if a VPC domain name or address is entered for `Endpoint`, pushed messages will not be received. Currently, messages can be pushed only to the public network and classic network.
	Endpoint *string `json:"Endpoint,omitnil,omitempty" name:"Endpoint"`

	// CMQ push server retry policy in case an error occurs while pushing a message to `Endpoint`. Valid values: 1. BACKOFF_RETRY: backoff retry, which is to retry at a fixed interval, discard the message after a certain number of retries, and continue to push the next message; 2. EXPONENTIAL_DECAY_RETRY: exponential decay retry, which is to retry at an exponentially increasing interval, such as 1s, 2s, 4s, 8s, and so on. As a message can be retained in a topic for one day, failed messages will be discarded at most after one day of retry. Default value: EXPONENTIAL_DECAY_RETRY.
	NotifyStrategy *string `json:"NotifyStrategy,omitnil,omitempty" name:"NotifyStrategy"`

	// Message body tag (used for message filtering). The number of tags cannot exceed 5, and each tag can contain up to 16 characters. It is used in conjunction with the `MsgTag` parameter of `(Batch)PublishMessage`. Rules: 1. If `FilterTag` is not configured, no matter whether `MsgTag` is configured, the subscription will receive all messages published to the topic; 2. If the array of `FilterTag` values has a value, only when at least one of the values in the array also exists in the array of `MsgTag` values (i.e., `FilterTag` and `MsgTag` have an intersection) can the subscription receive messages published to the topic; 3. If the array of `FilterTag` values has a value, but `MsgTag` is not configured, then no message published to the topic will be received, which can be considered as a special case of rule 2 as `FilterTag` and `MsgTag` do not intersect in this case. The overall design idea of rules is based on the intention of the subscriber.
	FilterTag []*string `json:"FilterTag,omitnil,omitempty" name:"FilterTag"`

	// The number of `BindingKey` cannot exceed 5, and the length of each `BindingKey` cannot exceed 64 bytes. This field indicates the filtering policy for subscribing to and receiving messages. Each `BindingKey` includes up to 15 dots (namely up to 16 segments).
	BindingKey []*string `json:"BindingKey,omitnil,omitempty" name:"BindingKey"`

	// Push content format. Valid values: 1. JSON; 2. SIMPLIFIED, i.e., the raw format. If `Protocol` is `queue`, this value must be `SIMPLIFIED`. If `Protocol` is `http`, both options are acceptable, and the default value is `JSON`.
	NotifyContentFormat *string `json:"NotifyContentFormat,omitnil,omitempty" name:"NotifyContentFormat"`
}

type CreateCmqSubscribeRequest struct {
	*tchttp.BaseRequest
	
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscription name, uniquely identifies under the same topic of the same account in a single region. subscription name is a string of no more than 64 characters, beginning with a letter, the remaining part can contain letters, digits, and hyphens (-).
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Subscription protocol. Currently, two protocols are supported: HTTP and queue. To use the HTTP protocol, you need to build your own web server to receive messages. With the queue protocol, messages are automatically pushed to a CMQ queue and you can pull them concurrently.
	Protocol *string `json:"Protocol,omitnil,omitempty" name:"Protocol"`

	// `Endpoint` for notification receipt, which is distinguished by `Protocol`. For `http`, `Endpoint` must begin with `http://` and `host` can be a domain name or IP. For `Queue`, enter `QueueName`. Note that currently the push service cannot push messages to a VPC; therefore, if a VPC domain name or address is entered for `Endpoint`, pushed messages will not be received. Currently, messages can be pushed only to the public network and classic network.
	Endpoint *string `json:"Endpoint,omitnil,omitempty" name:"Endpoint"`

	// CMQ push server retry policy in case an error occurs while pushing a message to `Endpoint`. Valid values: 1. BACKOFF_RETRY: backoff retry, which is to retry at a fixed interval, discard the message after a certain number of retries, and continue to push the next message; 2. EXPONENTIAL_DECAY_RETRY: exponential decay retry, which is to retry at an exponentially increasing interval, such as 1s, 2s, 4s, 8s, and so on. As a message can be retained in a topic for one day, failed messages will be discarded at most after one day of retry. Default value: EXPONENTIAL_DECAY_RETRY.
	NotifyStrategy *string `json:"NotifyStrategy,omitnil,omitempty" name:"NotifyStrategy"`

	// Message body tag (used for message filtering). The number of tags cannot exceed 5, and each tag can contain up to 16 characters. It is used in conjunction with the `MsgTag` parameter of `(Batch)PublishMessage`. Rules: 1. If `FilterTag` is not configured, no matter whether `MsgTag` is configured, the subscription will receive all messages published to the topic; 2. If the array of `FilterTag` values has a value, only when at least one of the values in the array also exists in the array of `MsgTag` values (i.e., `FilterTag` and `MsgTag` have an intersection) can the subscription receive messages published to the topic; 3. If the array of `FilterTag` values has a value, but `MsgTag` is not configured, then no message published to the topic will be received, which can be considered as a special case of rule 2 as `FilterTag` and `MsgTag` do not intersect in this case. The overall design idea of rules is based on the intention of the subscriber.
	FilterTag []*string `json:"FilterTag,omitnil,omitempty" name:"FilterTag"`

	// The number of `BindingKey` cannot exceed 5, and the length of each `BindingKey` cannot exceed 64 bytes. This field indicates the filtering policy for subscribing to and receiving messages. Each `BindingKey` includes up to 15 dots (namely up to 16 segments).
	BindingKey []*string `json:"BindingKey,omitnil,omitempty" name:"BindingKey"`

	// Push content format. Valid values: 1. JSON; 2. SIMPLIFIED, i.e., the raw format. If `Protocol` is `queue`, this value must be `SIMPLIFIED`. If `Protocol` is `http`, both options are acceptable, and the default value is `JSON`.
	NotifyContentFormat *string `json:"NotifyContentFormat,omitnil,omitempty" name:"NotifyContentFormat"`
}

func (r *CreateCmqSubscribeRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCmqSubscribeRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	delete(f, "SubscriptionName")
	delete(f, "Protocol")
	delete(f, "Endpoint")
	delete(f, "NotifyStrategy")
	delete(f, "FilterTag")
	delete(f, "BindingKey")
	delete(f, "NotifyContentFormat")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCmqSubscribeRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCmqSubscribeResponseParams struct {
	// Subscription ID
	SubscriptionId *string `json:"SubscriptionId,omitnil,omitempty" name:"SubscriptionId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateCmqSubscribeResponse struct {
	*tchttp.BaseResponse
	Response *CreateCmqSubscribeResponseParams `json:"Response"`
}

func (r *CreateCmqSubscribeResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCmqSubscribeResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCmqTopicRequestParams struct {
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Maximum message length. Value range: 1024–65536 bytes (i.e., 1–64 KB). Default value: 65536.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// Used to specify the message match policy for the topic. 1: tag match policy (default value); 2: routing match policy.
	FilterType *uint64 `json:"FilterType,omitnil,omitempty" name:"FilterType"`

	// Message retention period. Value range: 60–86400 seconds (i.e., 1 minute–1 day). Default value: 86400.
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Whether to enable message trace. true: yes; false: no. If this field is left empty, the feature will not be enabled.
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`

	// Tag array.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

type CreateCmqTopicRequest struct {
	*tchttp.BaseRequest
	
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Maximum message length. Value range: 1024–65536 bytes (i.e., 1–64 KB). Default value: 65536.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// Used to specify the message match policy for the topic. 1: tag match policy (default value); 2: routing match policy.
	FilterType *uint64 `json:"FilterType,omitnil,omitempty" name:"FilterType"`

	// Message retention period. Value range: 60–86400 seconds (i.e., 1 minute–1 day). Default value: 86400.
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Whether to enable message trace. true: yes; false: no. If this field is left empty, the feature will not be enabled.
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`

	// Tag array.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

func (r *CreateCmqTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCmqTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	delete(f, "MaxMsgSize")
	delete(f, "FilterType")
	delete(f, "MsgRetentionSeconds")
	delete(f, "Trace")
	delete(f, "Tags")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCmqTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCmqTopicResponseParams struct {
	// Topic ID
	TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateCmqTopicResponse struct {
	*tchttp.BaseResponse
	Response *CreateCmqTopicResponseParams `json:"Response"`
}

func (r *CreateCmqTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCmqTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateEnvironmentRequestParams struct {
	// Environment (namespace) name, which can contain up to 16 letters, digits, hyphens, and underscores.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Retention period for unconsumed messages in seconds. Value range: 60s to 1,296,000s (or 15 days).
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Message retention policy
	RetentionPolicy *RetentionPolicy `json:"RetentionPolicy,omitnil,omitempty" name:"RetentionPolicy"`

	// Whether to enable "Auto-Create Subscription"
	AutoSubscriptionCreation *bool `json:"AutoSubscriptionCreation,omitnil,omitempty" name:"AutoSubscriptionCreation"`
}

type CreateEnvironmentRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name, which can contain up to 16 letters, digits, hyphens, and underscores.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Retention period for unconsumed messages in seconds. Value range: 60s to 1,296,000s (or 15 days).
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Message retention policy
	RetentionPolicy *RetentionPolicy `json:"RetentionPolicy,omitnil,omitempty" name:"RetentionPolicy"`

	// Whether to enable "Auto-Create Subscription"
	AutoSubscriptionCreation *bool `json:"AutoSubscriptionCreation,omitnil,omitempty" name:"AutoSubscriptionCreation"`
}

func (r *CreateEnvironmentRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateEnvironmentRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "MsgTTL")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "RetentionPolicy")
	delete(f, "AutoSubscriptionCreation")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateEnvironmentRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateEnvironmentResponseParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// TTL for unconsumed messages in seconds.
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Remarks (up to 128 characters).
	// Note: this field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Namespace ID
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateEnvironmentResponse struct {
	*tchttp.BaseResponse
	Response *CreateEnvironmentResponseParams `json:"Response"`
}

func (r *CreateEnvironmentResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateEnvironmentResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateEnvironmentRoleRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Permissions, which is a non-empty string array of `produce` and `consume` at the most.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type CreateEnvironmentRoleRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Permissions, which is a non-empty string array of `produce` and `consume` at the most.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *CreateEnvironmentRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateEnvironmentRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "RoleName")
	delete(f, "Permissions")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateEnvironmentRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateEnvironmentRoleResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateEnvironmentRoleResponse struct {
	*tchttp.BaseResponse
	Response *CreateEnvironmentRoleResponseParams `json:"Response"`
}

func (r *CreateEnvironmentRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateEnvironmentRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateProClusterRequestParams struct {
	// Specifies multi-az deployment with three azs, for example [200002,200003,200004].
	// 
	// Single-AZ deployment selects an availability zone. example: [200002].
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`

	// Cluster specification code.
	// Refers to professional cluster specifications (https://www.tencentcloud.comom/document/product/1179/83705?from_cn_redirect=1).
	ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"`

	// Specifies the storage specification.
	// Refers to professional cluster specifications (https://www.tencentcloud.comom/document/product/1179/83705?from_cn_redirect=1).
	StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`

	// `1`: true. enables automatic monthly renewal.
	// 
	// false. disables automatic monthly renewal.
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Purchase duration. value range: 1–50.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Specifies the cluster name, which does not support chinese characters and special characters other than hyphens and underscores, with a length of no more than 64 characters.
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Whether to automatically select voucher. valid values: 1 (yes), 0 (no). default is 0.
	AutoVoucher *int64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// Specifies the vpc network tag.
	Vpc *VpcInfo `json:"Vpc,omitnil,omitempty" name:"Vpc"`

	// Tag list of the cluster (abandoned).
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

type CreateProClusterRequest struct {
	*tchttp.BaseRequest
	
	// Specifies multi-az deployment with three azs, for example [200002,200003,200004].
	// 
	// Single-AZ deployment selects an availability zone. example: [200002].
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`

	// Cluster specification code.
	// Refers to professional cluster specifications (https://www.tencentcloud.comom/document/product/1179/83705?from_cn_redirect=1).
	ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"`

	// Specifies the storage specification.
	// Refers to professional cluster specifications (https://www.tencentcloud.comom/document/product/1179/83705?from_cn_redirect=1).
	StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`

	// `1`: true. enables automatic monthly renewal.
	// 
	// false. disables automatic monthly renewal.
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Purchase duration. value range: 1–50.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Specifies the cluster name, which does not support chinese characters and special characters other than hyphens and underscores, with a length of no more than 64 characters.
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Whether to automatically select voucher. valid values: 1 (yes), 0 (no). default is 0.
	AutoVoucher *int64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// Specifies the vpc network tag.
	Vpc *VpcInfo `json:"Vpc,omitnil,omitempty" name:"Vpc"`

	// Tag list of the cluster (abandoned).
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

func (r *CreateProClusterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateProClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ZoneIds")
	delete(f, "ProductName")
	delete(f, "StorageSize")
	delete(f, "AutoRenewFlag")
	delete(f, "TimeSpan")
	delete(f, "ClusterName")
	delete(f, "AutoVoucher")
	delete(f, "Vpc")
	delete(f, "Tags")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateProClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateProClusterResponseParams struct {
	// Specifies the sub-order number.
	DealName *string `json:"DealName,omitnil,omitempty" name:"DealName"`

	// Order ID
	BigDealId *string `json:"BigDealId,omitnil,omitempty" name:"BigDealId"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Cluster name.
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateProClusterResponse struct {
	*tchttp.BaseResponse
	Response *CreateProClusterResponseParams `json:"Response"`
}

func (r *CreateProClusterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateProClusterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRabbitMQBindingRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Source exchange.
	Source *string `json:"Source,omitnil,omitempty" name:"Source"`

	// Target type. Valid values: queue, exchange.
	DestinationType *string `json:"DestinationType,omitnil,omitempty" name:"DestinationType"`

	// Target
	Destination *string `json:"Destination,omitnil,omitempty" name:"Destination"`

	// Routing key
	RoutingKey *string `json:"RoutingKey,omitnil,omitempty" name:"RoutingKey"`
}

type CreateRabbitMQBindingRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Source exchange.
	Source *string `json:"Source,omitnil,omitempty" name:"Source"`

	// Target type. Valid values: queue, exchange.
	DestinationType *string `json:"DestinationType,omitnil,omitempty" name:"DestinationType"`

	// Target
	Destination *string `json:"Destination,omitnil,omitempty" name:"Destination"`

	// Routing key
	RoutingKey *string `json:"RoutingKey,omitnil,omitempty" name:"RoutingKey"`
}

func (r *CreateRabbitMQBindingRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRabbitMQBindingRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	delete(f, "Source")
	delete(f, "DestinationType")
	delete(f, "Destination")
	delete(f, "RoutingKey")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRabbitMQBindingRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRabbitMQBindingResponseParams struct {
	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Vhost name
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Routing relationship ID.
	BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRabbitMQBindingResponse struct {
	*tchttp.BaseResponse
	Response *CreateRabbitMQBindingResponseParams `json:"Response"`
}

func (r *CreateRabbitMQBindingResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRabbitMQBindingResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRabbitMQUserRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, which is used for login.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// Password, used when logging in. requirement: cannot be empty, 8-64 characters, must contain at least two items from lowercase letters, uppercase letters, digits, and special characters [`()~!@#$%^&*_=|{}[]:;',.?/].
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// Description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// User tag, which defines a user's permission scope for accessing RabbitMQ Managementu.
	// Valid values: `management` (Common console user), monitoring` (Console admin user), other values: Non-console user.
	Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The maximum number of connections for the user. If this parameter is left empty, there's no limit for the number.
	MaxConnections *int64 `json:"MaxConnections,omitnil,omitempty" name:"MaxConnections"`

	// The maximum number of channels for the user. If this parameter is left empty, there's no limit for the number.
	MaxChannels *int64 `json:"MaxChannels,omitnil,omitempty" name:"MaxChannels"`
}

type CreateRabbitMQUserRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, which is used for login.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// Password, used when logging in. requirement: cannot be empty, 8-64 characters, must contain at least two items from lowercase letters, uppercase letters, digits, and special characters [`()~!@#$%^&*_=|{}[]:;',.?/].
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// Description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// User tag, which defines a user's permission scope for accessing RabbitMQ Managementu.
	// Valid values: `management` (Common console user), monitoring` (Console admin user), other values: Non-console user.
	Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The maximum number of connections for the user. If this parameter is left empty, there's no limit for the number.
	MaxConnections *int64 `json:"MaxConnections,omitnil,omitempty" name:"MaxConnections"`

	// The maximum number of channels for the user. If this parameter is left empty, there's no limit for the number.
	MaxChannels *int64 `json:"MaxChannels,omitnil,omitempty" name:"MaxChannels"`
}

func (r *CreateRabbitMQUserRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRabbitMQUserRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "User")
	delete(f, "Password")
	delete(f, "Description")
	delete(f, "Tags")
	delete(f, "MaxConnections")
	delete(f, "MaxChannels")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRabbitMQUserRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRabbitMQUserResponseParams struct {
	// Username, which is used for login.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRabbitMQUserResponse struct {
	*tchttp.BaseResponse
	Response *CreateRabbitMQUserResponseParams `json:"Response"`
}

func (r *CreateRabbitMQUserResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRabbitMQUserResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRabbitMQVipInstanceRequestParams struct {
	// AZ
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`

	// vpc ID, such as vpc-xxx. valid VpcId can be obtained by logging in to the virtual private cloud console (https://console.cloud.tencent.com/vpc/vpc?rid=1) or via api call to DescribeVpcEx (https://www.tencentcloud.comom/document/api/215/1372?from_cn_redirect=1), retrieving the unVpcId field from the api response. if both VpcId and SubnetId are set to DEFAULT when creating an instance, the DEFAULT vpc network will be forcibly used.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// The subnet ID of the vpc, such as subnet-xxx. valid subnet ids can be queried by logging in to the subnet console (https://console.cloud.tencent.com/vpc/subnet?rid=1) or by calling the api [DescribeSubnets](https://www.tencentcloud.comom/document/api/215/15784?from_cn_redirect=1) and obtaining the unSubnetId field from the api response. if both SubnetId and VpcId are set to DEFAULT when creating an instance, the DEFAULT vpc network will be forcibly used.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Cluster name
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Node specification of the cluster. need to enter the corresponding specification flag.
	// 2C8G:rabbit-vip-profession-2c8g
	// 4C16G:rabbit-vip-profession-4c16g
	// 8C32G:rabbit-vip-profession-8c32g
	// 16C32G:rabbit-vip-basic-4
	// 16C64G:rabbit-vip-profession-16c64g
	// 2C4G:rabbit-vip-basic-5
	// 4C8G:rabbit-vip-basic-1
	// 8C16G (sold out): rabbit-vip-basic-2.
	// Specifies the default value as 4C8G: rabbit-vip-basic-1.
	NodeSpec *string `json:"NodeSpec,omitnil,omitempty" name:"NodeSpec"`

	// Number of nodes, which is at least three for multi-AZ deployment. If this parameter is left empty, the value will be set to 1 for single-AZ deployment and 3 for multi-AZ deployment by default.
	NodeNum *int64 `json:"NodeNum,omitnil,omitempty" name:"NodeNum"`

	// Storage capacity of a single node, which is 200 GB by default.
	StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`

	// Whether the default image queue is enabled. true means enabled, false means not enabled. defaults to false if not specified.
	EnableCreateDefaultHaMirrorQueue *bool `json:"EnableCreateDefaultHaMirrorQueue,omitnil,omitempty" name:"EnableCreateDefaultHaMirrorQueue"`

	// Only applies to prepaid clusters (when PayMode parameter is 1). specifies whether the cluster is automatically renewed. true means auto-renewal is enabled. the default is true if not specified.
	AutoRenewFlag *bool `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Validity period, which is one month by default.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Payment mode. 0: postpaid, (pay-as-you-go); 1: prepaid (monthly subscription). Monthly subscription is used by default.
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Specifies the cluster edition. defaults to 3.8.30. valid values: 3.8.30, 3.11.8, 3.13.7.
	ClusterVersion *string `json:"ClusterVersion,omitnil,omitempty" name:"ClusterVersion"`

	// Whether the request is from the international website. Default value: false.
	IsIntl *bool `json:"IsIntl,omitnil,omitempty" name:"IsIntl"`

	// Resource tag list.
	ResourceTags []*Tag `json:"ResourceTags,omitnil,omitempty" name:"ResourceTags"`

	// Specifies the public bandwidth size in Mbps.
	Bandwidth *uint64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Whether to enable public network access. If this parameter is not specified, the value is false by default.
	EnablePublicAccess *bool `json:"EnablePublicAccess,omitnil,omitempty" name:"EnablePublicAccess"`

	// Whether to enable cluster deletion protection. if this parameter is not specified, the value is false by default.
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`
}

type CreateRabbitMQVipInstanceRequest struct {
	*tchttp.BaseRequest
	
	// AZ
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`

	// vpc ID, such as vpc-xxx. valid VpcId can be obtained by logging in to the virtual private cloud console (https://console.cloud.tencent.com/vpc/vpc?rid=1) or via api call to DescribeVpcEx (https://www.tencentcloud.comom/document/api/215/1372?from_cn_redirect=1), retrieving the unVpcId field from the api response. if both VpcId and SubnetId are set to DEFAULT when creating an instance, the DEFAULT vpc network will be forcibly used.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// The subnet ID of the vpc, such as subnet-xxx. valid subnet ids can be queried by logging in to the subnet console (https://console.cloud.tencent.com/vpc/subnet?rid=1) or by calling the api [DescribeSubnets](https://www.tencentcloud.comom/document/api/215/15784?from_cn_redirect=1) and obtaining the unSubnetId field from the api response. if both SubnetId and VpcId are set to DEFAULT when creating an instance, the DEFAULT vpc network will be forcibly used.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Cluster name
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Node specification of the cluster. need to enter the corresponding specification flag.
	// 2C8G:rabbit-vip-profession-2c8g
	// 4C16G:rabbit-vip-profession-4c16g
	// 8C32G:rabbit-vip-profession-8c32g
	// 16C32G:rabbit-vip-basic-4
	// 16C64G:rabbit-vip-profession-16c64g
	// 2C4G:rabbit-vip-basic-5
	// 4C8G:rabbit-vip-basic-1
	// 8C16G (sold out): rabbit-vip-basic-2.
	// Specifies the default value as 4C8G: rabbit-vip-basic-1.
	NodeSpec *string `json:"NodeSpec,omitnil,omitempty" name:"NodeSpec"`

	// Number of nodes, which is at least three for multi-AZ deployment. If this parameter is left empty, the value will be set to 1 for single-AZ deployment and 3 for multi-AZ deployment by default.
	NodeNum *int64 `json:"NodeNum,omitnil,omitempty" name:"NodeNum"`

	// Storage capacity of a single node, which is 200 GB by default.
	StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`

	// Whether the default image queue is enabled. true means enabled, false means not enabled. defaults to false if not specified.
	EnableCreateDefaultHaMirrorQueue *bool `json:"EnableCreateDefaultHaMirrorQueue,omitnil,omitempty" name:"EnableCreateDefaultHaMirrorQueue"`

	// Only applies to prepaid clusters (when PayMode parameter is 1). specifies whether the cluster is automatically renewed. true means auto-renewal is enabled. the default is true if not specified.
	AutoRenewFlag *bool `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Validity period, which is one month by default.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Payment mode. 0: postpaid, (pay-as-you-go); 1: prepaid (monthly subscription). Monthly subscription is used by default.
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Specifies the cluster edition. defaults to 3.8.30. valid values: 3.8.30, 3.11.8, 3.13.7.
	ClusterVersion *string `json:"ClusterVersion,omitnil,omitempty" name:"ClusterVersion"`

	// Whether the request is from the international website. Default value: false.
	IsIntl *bool `json:"IsIntl,omitnil,omitempty" name:"IsIntl"`

	// Resource tag list.
	ResourceTags []*Tag `json:"ResourceTags,omitnil,omitempty" name:"ResourceTags"`

	// Specifies the public bandwidth size in Mbps.
	Bandwidth *uint64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Whether to enable public network access. If this parameter is not specified, the value is false by default.
	EnablePublicAccess *bool `json:"EnablePublicAccess,omitnil,omitempty" name:"EnablePublicAccess"`

	// Whether to enable cluster deletion protection. if this parameter is not specified, the value is false by default.
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`
}

func (r *CreateRabbitMQVipInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRabbitMQVipInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ZoneIds")
	delete(f, "VpcId")
	delete(f, "SubnetId")
	delete(f, "ClusterName")
	delete(f, "NodeSpec")
	delete(f, "NodeNum")
	delete(f, "StorageSize")
	delete(f, "EnableCreateDefaultHaMirrorQueue")
	delete(f, "AutoRenewFlag")
	delete(f, "TimeSpan")
	delete(f, "PayMode")
	delete(f, "ClusterVersion")
	delete(f, "IsIntl")
	delete(f, "ResourceTags")
	delete(f, "Bandwidth")
	delete(f, "EnablePublicAccess")
	delete(f, "EnableDeletionProtection")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRabbitMQVipInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRabbitMQVipInstanceResponseParams struct {
	// Order ID.
	TranId *string `json:"TranId,omitnil,omitempty" name:"TranId"`

	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRabbitMQVipInstanceResponse struct {
	*tchttp.BaseResponse
	Response *CreateRabbitMQVipInstanceResponseParams `json:"Response"`
}

func (r *CreateRabbitMQVipInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRabbitMQVipInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRabbitMQVirtualHostRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Vhost name
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Message trace flag. Valid values: `true` (Enabled), `false` (Disabled, which is the default value).
	TraceFlag *bool `json:"TraceFlag,omitnil,omitempty" name:"TraceFlag"`

	// Whether to create an image queue policy. Default value: true.
	MirrorQueuePolicyFlag *bool `json:"MirrorQueuePolicyFlag,omitnil,omitempty" name:"MirrorQueuePolicyFlag"`
}

type CreateRabbitMQVirtualHostRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Vhost name
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Message trace flag. Valid values: `true` (Enabled), `false` (Disabled, which is the default value).
	TraceFlag *bool `json:"TraceFlag,omitnil,omitempty" name:"TraceFlag"`

	// Whether to create an image queue policy. Default value: true.
	MirrorQueuePolicyFlag *bool `json:"MirrorQueuePolicyFlag,omitnil,omitempty" name:"MirrorQueuePolicyFlag"`
}

func (r *CreateRabbitMQVirtualHostRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRabbitMQVirtualHostRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	delete(f, "Description")
	delete(f, "TraceFlag")
	delete(f, "MirrorQueuePolicyFlag")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRabbitMQVirtualHostRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRabbitMQVirtualHostResponseParams struct {
	// Vhost name
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRabbitMQVirtualHostResponse struct {
	*tchttp.BaseResponse
	Response *CreateRabbitMQVirtualHostResponseParams `json:"Response"`
}

func (r *CreateRabbitMQVirtualHostResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRabbitMQVirtualHostResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQClusterRequestParams struct {
	// Cluster name, which can contain 3–64 letters, digits, hyphens, and underscores
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Cluster description (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Tag list
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`
}

type CreateRocketMQClusterRequest struct {
	*tchttp.BaseRequest
	
	// Cluster name, which can contain 3–64 letters, digits, hyphens, and underscores
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Cluster description (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Tag list
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`
}

func (r *CreateRocketMQClusterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Name")
	delete(f, "Remark")
	delete(f, "TagList")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQClusterResponseParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRocketMQClusterResponse struct {
	*tchttp.BaseResponse
	Response *CreateRocketMQClusterResponseParams `json:"Response"`
}

func (r *CreateRocketMQClusterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQClusterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQEnvironmentRoleRequestParams struct {
	// Namespace
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Authorization item, which can contain a non-empty character array of up to 2 items including produce and consume.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Permission configuration for topic and group dimensions.
	DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"`
}

type CreateRocketMQEnvironmentRoleRequest struct {
	*tchttp.BaseRequest
	
	// Namespace
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Authorization item, which can contain a non-empty character array of up to 2 items including produce and consume.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Permission configuration for topic and group dimensions.
	DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"`
}

func (r *CreateRocketMQEnvironmentRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQEnvironmentRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "RoleName")
	delete(f, "Permissions")
	delete(f, "ClusterId")
	delete(f, "DetailedPerms")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQEnvironmentRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQEnvironmentRoleResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRocketMQEnvironmentRoleResponse struct {
	*tchttp.BaseResponse
	Response *CreateRocketMQEnvironmentRoleResponseParams `json:"Response"`
}

func (r *CreateRocketMQEnvironmentRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQEnvironmentRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQGroupRequestParams struct {
	// Group name (8–64 characters)
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Namespace. Currently, only one namespace is supported
	Namespaces []*string `json:"Namespaces,omitnil,omitempty" name:"Namespaces"`

	// Whether to enable consumption
	ReadEnable *bool `json:"ReadEnable,omitnil,omitempty" name:"ReadEnable"`

	// Whether to enable broadcast consumption
	BroadcastEnable *bool `json:"BroadcastEnable,omitnil,omitempty" name:"BroadcastEnable"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Group type (`TCP`, `HTTP`)
	GroupType *string `json:"GroupType,omitnil,omitempty" name:"GroupType"`

	// The maximum number of retries for a group
	RetryMaxTimes *uint64 `json:"RetryMaxTimes,omitnil,omitempty" name:"RetryMaxTimes"`
}

type CreateRocketMQGroupRequest struct {
	*tchttp.BaseRequest
	
	// Group name (8–64 characters)
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Namespace. Currently, only one namespace is supported
	Namespaces []*string `json:"Namespaces,omitnil,omitempty" name:"Namespaces"`

	// Whether to enable consumption
	ReadEnable *bool `json:"ReadEnable,omitnil,omitempty" name:"ReadEnable"`

	// Whether to enable broadcast consumption
	BroadcastEnable *bool `json:"BroadcastEnable,omitnil,omitempty" name:"BroadcastEnable"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Group type (`TCP`, `HTTP`)
	GroupType *string `json:"GroupType,omitnil,omitempty" name:"GroupType"`

	// The maximum number of retries for a group
	RetryMaxTimes *uint64 `json:"RetryMaxTimes,omitnil,omitempty" name:"RetryMaxTimes"`
}

func (r *CreateRocketMQGroupRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQGroupRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "GroupId")
	delete(f, "Namespaces")
	delete(f, "ReadEnable")
	delete(f, "BroadcastEnable")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "GroupType")
	delete(f, "RetryMaxTimes")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQGroupRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQGroupResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRocketMQGroupResponse struct {
	*tchttp.BaseResponse
	Response *CreateRocketMQGroupResponseParams `json:"Response"`
}

func (r *CreateRocketMQGroupResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQGroupResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQNamespaceRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name, which can contain 3–64 letters, digits, hyphens, and underscores
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// This parameter is disused.
	Ttl *uint64 `json:"Ttl,omitnil,omitempty" name:"Ttl"`

	// This parameter is disused.
	RetentionTime *uint64 `json:"RetentionTime,omitnil,omitempty" name:"RetentionTime"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

type CreateRocketMQNamespaceRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name, which can contain 3–64 letters, digits, hyphens, and underscores
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// This parameter is disused.
	Ttl *uint64 `json:"Ttl,omitnil,omitempty" name:"Ttl"`

	// This parameter is disused.
	RetentionTime *uint64 `json:"RetentionTime,omitnil,omitempty" name:"RetentionTime"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

func (r *CreateRocketMQNamespaceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQNamespaceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "Ttl")
	delete(f, "RetentionTime")
	delete(f, "Remark")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQNamespaceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQNamespaceResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRocketMQNamespaceResponse struct {
	*tchttp.BaseResponse
	Response *CreateRocketMQNamespaceResponseParams `json:"Response"`
}

func (r *CreateRocketMQNamespaceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQNamespaceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQRoleRequestParams struct {
	// Role name. Does not support Chinese characters and special characters other than hyphens (-) and underscores (_), and must be greater than 0 and less than or equal to 32 in length.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remark description. Length must be greater than or equal to 0 and less than or equal to 128.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Role authorization type (cluster: Cluster; topic or consumer group: TopicAndGroup).
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`
}

type CreateRocketMQRoleRequest struct {
	*tchttp.BaseRequest
	
	// Role name. Does not support Chinese characters and special characters other than hyphens (-) and underscores (_), and must be greater than 0 and less than or equal to 32 in length.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remark description. Length must be greater than or equal to 0 and less than or equal to 128.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Role authorization type (cluster: Cluster; topic or consumer group: TopicAndGroup).
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`
}

func (r *CreateRocketMQRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RoleName")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "PermType")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQRoleResponseParams struct {
	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Role token.
	Token *string `json:"Token,omitnil,omitempty" name:"Token"`

	// Specifies the remark description.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRocketMQRoleResponse struct {
	*tchttp.BaseResponse
	Response *CreateRocketMQRoleResponseParams `json:"Response"`
}

func (r *CreateRocketMQRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQTopicRequestParams struct {
	// Topic name, which can contain 3–64 letters, digits, hyphens, and underscores
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Topic namespace. Currently, you can create topics only in one single namespace.
	Namespaces []*string `json:"Namespaces,omitnil,omitempty" name:"Namespaces"`

	// Topic type. Valid values: Normal, GlobalOrder, PartitionedOrder, Transaction, and DelayScheduled. Transaction is only supported in the Exclusive Edition.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Topic remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Number of partitions, which doesn't take effect for globally sequential messages
	PartitionNum *int64 `json:"PartitionNum,omitnil,omitempty" name:"PartitionNum"`
}

type CreateRocketMQTopicRequest struct {
	*tchttp.BaseRequest
	
	// Topic name, which can contain 3–64 letters, digits, hyphens, and underscores
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Topic namespace. Currently, you can create topics only in one single namespace.
	Namespaces []*string `json:"Namespaces,omitnil,omitempty" name:"Namespaces"`

	// Topic type. Valid values: Normal, GlobalOrder, PartitionedOrder, Transaction, and DelayScheduled. Transaction is only supported in the Exclusive Edition.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Topic remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Number of partitions, which doesn't take effect for globally sequential messages
	PartitionNum *int64 `json:"PartitionNum,omitnil,omitempty" name:"PartitionNum"`
}

func (r *CreateRocketMQTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Topic")
	delete(f, "Namespaces")
	delete(f, "Type")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "PartitionNum")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQTopicResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRocketMQTopicResponse struct {
	*tchttp.BaseResponse
	Response *CreateRocketMQTopicResponseParams `json:"Response"`
}

func (r *CreateRocketMQTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQVipInstanceRequestParams struct {
	// Instance name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Cluster specification. Supported specifications: 1. 	General: rocket-vip-basic-0; 2. Basic: rocket-vip-basic-1; 3. Standard: rocket-vip-basic-2; 4. Advanced I: rocket-vip-basic-3; 5. Advanced II: rocket-vip-basic-4.
	Spec *string `json:"Spec,omitnil,omitempty" name:"Spec"`

	// Number of nodes. Value range: 2–20.
	NodeCount *int64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// Single-node storage space, in GB. The minimum space is 200 GB.
	StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`

	// The zone ID list for node deployment. For example, the ID of Guangzhou Zone 1 is 100001. For details, see the official website of the cloud platform.
	ZoneIds []*string `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`

	// Describes the VPC information.
	VpcInfo *VpcInfo `json:"VpcInfo,omitnil,omitempty" name:"VpcInfo"`

	// Purchase duration, in months.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Whether it is used for cloud migration. The default value is false.
	SupportsMigrateToCloud *bool `json:"SupportsMigrateToCloud,omitnil,omitempty" name:"SupportsMigrateToCloud"`

	// Specifies whether public network access is enabled.
	EnablePublic *bool `json:"EnablePublic,omitnil,omitempty" name:"EnablePublic"`

	// Public network bandwidth, a required field when the public network is enabled.
	Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Public network allowlist.
	IpRules []*PublicAccessRule `json:"IpRules,omitnil,omitempty" name:"IpRules"`

	// Tag.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

type CreateRocketMQVipInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Cluster specification. Supported specifications: 1. 	General: rocket-vip-basic-0; 2. Basic: rocket-vip-basic-1; 3. Standard: rocket-vip-basic-2; 4. Advanced I: rocket-vip-basic-3; 5. Advanced II: rocket-vip-basic-4.
	Spec *string `json:"Spec,omitnil,omitempty" name:"Spec"`

	// Number of nodes. Value range: 2–20.
	NodeCount *int64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// Single-node storage space, in GB. The minimum space is 200 GB.
	StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`

	// The zone ID list for node deployment. For example, the ID of Guangzhou Zone 1 is 100001. For details, see the official website of the cloud platform.
	ZoneIds []*string `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`

	// Describes the VPC information.
	VpcInfo *VpcInfo `json:"VpcInfo,omitnil,omitempty" name:"VpcInfo"`

	// Purchase duration, in months.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Whether it is used for cloud migration. The default value is false.
	SupportsMigrateToCloud *bool `json:"SupportsMigrateToCloud,omitnil,omitempty" name:"SupportsMigrateToCloud"`

	// Specifies whether public network access is enabled.
	EnablePublic *bool `json:"EnablePublic,omitnil,omitempty" name:"EnablePublic"`

	// Public network bandwidth, a required field when the public network is enabled.
	Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Public network allowlist.
	IpRules []*PublicAccessRule `json:"IpRules,omitnil,omitempty" name:"IpRules"`

	// Tag.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

func (r *CreateRocketMQVipInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQVipInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Name")
	delete(f, "Spec")
	delete(f, "NodeCount")
	delete(f, "StorageSize")
	delete(f, "ZoneIds")
	delete(f, "VpcInfo")
	delete(f, "TimeSpan")
	delete(f, "SupportsMigrateToCloud")
	delete(f, "EnablePublic")
	delete(f, "Bandwidth")
	delete(f, "IpRules")
	delete(f, "Tags")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQVipInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRocketMQVipInstanceResponseParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRocketMQVipInstanceResponse struct {
	*tchttp.BaseResponse
	Response *CreateRocketMQVipInstanceResponseParams `json:"Response"`
}

func (r *CreateRocketMQVipInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRocketMQVipInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRoleRequestParams struct {
	// Role name, which can contain up to 32 letters, digits, hyphens, and underscores.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type CreateRoleRequest struct {
	*tchttp.BaseRequest
	
	// Role name, which can contain up to 32 letters, digits, hyphens, and underscores.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *CreateRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RoleName")
	delete(f, "Remark")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRoleResponseParams struct {
	// Role name
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Role token
	Token *string `json:"Token,omitnil,omitempty" name:"Token"`

	// Remarks
	// Note: this field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Namespaces that are bound in batches
	// Note: This field may return null, indicating that no valid values can be obtained.
	EnvironmentRoleSets []*EnvironmentRoleSet `json:"EnvironmentRoleSets,omitnil,omitempty" name:"EnvironmentRoleSets"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateRoleResponse struct {
	*tchttp.BaseResponse
	Response *CreateRoleResponseParams `json:"Response"`
}

func (r *CreateRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateSubscriptionRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscriber name, which can contain up to 128 characters.
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Whether the creation is idempotent; if not, you cannot create subscriptions with the same name.
	IsIdempotent *bool `json:"IsIdempotent,omitnil,omitempty" name:"IsIdempotent"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Whether to automatically create a dead letter topic and a retry letter topic. true: yes (default value); false: no.
	AutoCreatePolicyTopic *bool `json:"AutoCreatePolicyTopic,omitnil,omitempty" name:"AutoCreatePolicyTopic"`

	// Naming convention for dead letter and retry letter topics. `LEGACY` indicates to use the legacy naming convention, and `COMMUNITY` indicates to use the naming convention in the Pulsar community.
	PostFixPattern *string `json:"PostFixPattern,omitnil,omitempty" name:"PostFixPattern"`
}

type CreateSubscriptionRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscriber name, which can contain up to 128 characters.
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Whether the creation is idempotent; if not, you cannot create subscriptions with the same name.
	IsIdempotent *bool `json:"IsIdempotent,omitnil,omitempty" name:"IsIdempotent"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Whether to automatically create a dead letter topic and a retry letter topic. true: yes (default value); false: no.
	AutoCreatePolicyTopic *bool `json:"AutoCreatePolicyTopic,omitnil,omitempty" name:"AutoCreatePolicyTopic"`

	// Naming convention for dead letter and retry letter topics. `LEGACY` indicates to use the legacy naming convention, and `COMMUNITY` indicates to use the naming convention in the Pulsar community.
	PostFixPattern *string `json:"PostFixPattern,omitnil,omitempty" name:"PostFixPattern"`
}

func (r *CreateSubscriptionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateSubscriptionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "SubscriptionName")
	delete(f, "IsIdempotent")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "AutoCreatePolicyTopic")
	delete(f, "PostFixPattern")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateSubscriptionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateSubscriptionResponseParams struct {
	// Creation result.
	Result *bool `json:"Result,omitnil,omitempty" name:"Result"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateSubscriptionResponse struct {
	*tchttp.BaseResponse
	Response *CreateSubscriptionResponseParams `json:"Response"`
}

func (r *CreateSubscriptionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateSubscriptionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateTopicRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name, which can contain up to 64 letters, digits, hyphens, and underscores.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// The input parameter is 1, which means creating a non-partitioned topic with no partition. if the input parameter is greater than 1, it indicates the number of partitions for a partitioned topic, and the maximum cannot exceed 32.
	Partitions *uint64 `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// This input parameter will be disused soon. You can use `PulsarTopicType` instead.
	// 0: General message;
	// 1: Globally sequential message;
	// 2: Partitionally sequential message;
	// 3: Retry letter topic;
	// 4: Dead letter topic.
	TopicType *uint64 `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// Pulsar topic type.
	// `0`: Non-persistent and non-partitioned
	// `1`: Non-persistent and partitioned
	// `2`: Persistent and non-partitioned
	// `3`: Persistent and partitioned
	PulsarTopicType *int64 `json:"PulsarTopicType,omitnil,omitempty" name:"PulsarTopicType"`

	// Retention period for unconsumed messages in seconds. value ranges from 60 seconds to 15 days.
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Default if not passed is native policy. DefaultPolicy means when the subscription reaches the maximum unacknowledged messages of 5000, the server will stop pushing messages to all consumers under the current subscription. DynamicPolicy means dynamically adjust the maximum unacknowledged messages of the subscription, with the specific quota being the maximum between 5000 and the number of consumers multiplied by 20. the default maximum unacknowledged message count per consumer is 20. exceeding this limit only affects that consumer and does not affect other consumers.
	UnackPolicy *string `json:"UnackPolicy,omitnil,omitempty" name:"UnackPolicy"`

	// Whether exception consumer isolation is enabled.
	IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"`

	// Specifies the consumer Ack timeout period in seconds. value range: 60-(3600*24).
	AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"`
}

type CreateTopicRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name, which can contain up to 64 letters, digits, hyphens, and underscores.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// The input parameter is 1, which means creating a non-partitioned topic with no partition. if the input parameter is greater than 1, it indicates the number of partitions for a partitioned topic, and the maximum cannot exceed 32.
	Partitions *uint64 `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// This input parameter will be disused soon. You can use `PulsarTopicType` instead.
	// 0: General message;
	// 1: Globally sequential message;
	// 2: Partitionally sequential message;
	// 3: Retry letter topic;
	// 4: Dead letter topic.
	TopicType *uint64 `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// Pulsar topic type.
	// `0`: Non-persistent and non-partitioned
	// `1`: Non-persistent and partitioned
	// `2`: Persistent and non-partitioned
	// `3`: Persistent and partitioned
	PulsarTopicType *int64 `json:"PulsarTopicType,omitnil,omitempty" name:"PulsarTopicType"`

	// Retention period for unconsumed messages in seconds. value ranges from 60 seconds to 15 days.
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Default if not passed is native policy. DefaultPolicy means when the subscription reaches the maximum unacknowledged messages of 5000, the server will stop pushing messages to all consumers under the current subscription. DynamicPolicy means dynamically adjust the maximum unacknowledged messages of the subscription, with the specific quota being the maximum between 5000 and the number of consumers multiplied by 20. the default maximum unacknowledged message count per consumer is 20. exceeding this limit only affects that consumer and does not affect other consumers.
	UnackPolicy *string `json:"UnackPolicy,omitnil,omitempty" name:"UnackPolicy"`

	// Whether exception consumer isolation is enabled.
	IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"`

	// Specifies the consumer Ack timeout period in seconds. value range: 60-(3600*24).
	AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"`
}

func (r *CreateTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "Partitions")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "TopicType")
	delete(f, "PulsarTopicType")
	delete(f, "MsgTTL")
	delete(f, "UnackPolicy")
	delete(f, "IsolateConsumerEnable")
	delete(f, "AckTimeOut")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateTopicResponseParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Valid value: 0 or 1. Non-partitioned topic: No partitions. A value greater than 1: The partition count of a partitioned topic. `0` is returned for existing non-partitioned topics, and `1` is returned for incremental non-partitioned topics.
	Partitions *uint64 `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// Remarks, within 128 characters.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// 0: standard message.
	// Global sequential message.
	// 2: local ordered messages.
	// Specifies the retry queue.
	// 4: dead letter queue.
	TopicType *uint64 `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateTopicResponse struct {
	*tchttp.BaseResponse
	Response *CreateTopicResponseParams `json:"Response"`
}

func (r *CreateTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteClusterRequestParams struct {
	// ID of the cluster to be deleted.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DeleteClusterRequest struct {
	*tchttp.BaseRequest
	
	// ID of the cluster to be deleted.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DeleteClusterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteClusterResponseParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteClusterResponse struct {
	*tchttp.BaseResponse
	Response *DeleteClusterResponseParams `json:"Response"`
}

func (r *DeleteClusterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteClusterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCmqQueueRequestParams struct {
	// Queue name, unique under the same account in a single region. queue name is a string of no more than 64 characters, beginning with a letter, the remainder can contain letters, digits, and hyphens (-).
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`
}

type DeleteCmqQueueRequest struct {
	*tchttp.BaseRequest
	
	// Queue name, unique under the same account in a single region. queue name is a string of no more than 64 characters, beginning with a letter, the remainder can contain letters, digits, and hyphens (-).
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`
}

func (r *DeleteCmqQueueRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCmqQueueRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "QueueName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteCmqQueueRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCmqQueueResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteCmqQueueResponse struct {
	*tchttp.BaseResponse
	Response *DeleteCmqQueueResponseParams `json:"Response"`
}

func (r *DeleteCmqQueueResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCmqQueueResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCmqSubscribeRequestParams struct {
	// Topic name, which must be unique under the same account in a single region. the name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscription name, uniquely identifies under the same topic of the same account in a single region. subscription name is a string of no more than 64 characters, beginning with a letter, the remaining part can contain letters, digits, and hyphens (-).
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`
}

type DeleteCmqSubscribeRequest struct {
	*tchttp.BaseRequest
	
	// Topic name, which must be unique under the same account in a single region. the name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscription name, uniquely identifies under the same topic of the same account in a single region. subscription name is a string of no more than 64 characters, beginning with a letter, the remaining part can contain letters, digits, and hyphens (-).
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`
}

func (r *DeleteCmqSubscribeRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCmqSubscribeRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	delete(f, "SubscriptionName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteCmqSubscribeRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCmqSubscribeResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteCmqSubscribeResponse struct {
	*tchttp.BaseResponse
	Response *DeleteCmqSubscribeResponseParams `json:"Response"`
}

func (r *DeleteCmqSubscribeResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCmqSubscribeResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCmqTopicRequestParams struct {
	// Topic name, which must be unique under the same account in a single region. the name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
}

type DeleteCmqTopicRequest struct {
	*tchttp.BaseRequest
	
	// Topic name, which must be unique under the same account in a single region. the name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
}

func (r *DeleteCmqTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCmqTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteCmqTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCmqTopicResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteCmqTopicResponse struct {
	*tchttp.BaseResponse
	Response *DeleteCmqTopicResponseParams `json:"Response"`
}

func (r *DeleteCmqTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCmqTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteEnvironmentRolesRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Array of role names.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DeleteEnvironmentRolesRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Array of role names.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DeleteEnvironmentRolesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteEnvironmentRolesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "RoleNames")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteEnvironmentRolesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteEnvironmentRolesResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteEnvironmentRolesResponse struct {
	*tchttp.BaseResponse
	Response *DeleteEnvironmentRolesResponseParams `json:"Response"`
}

func (r *DeleteEnvironmentRolesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteEnvironmentRolesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteEnvironmentsRequestParams struct {
	// Array of environments (namespaces). Up to 20 environments can be deleted at a time.
	EnvironmentIds []*string `json:"EnvironmentIds,omitnil,omitempty" name:"EnvironmentIds"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DeleteEnvironmentsRequest struct {
	*tchttp.BaseRequest
	
	// Array of environments (namespaces). Up to 20 environments can be deleted at a time.
	EnvironmentIds []*string `json:"EnvironmentIds,omitnil,omitempty" name:"EnvironmentIds"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DeleteEnvironmentsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteEnvironmentsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentIds")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteEnvironmentsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteEnvironmentsResponseParams struct {
	// Array of environments (namespaces) successfully deleted.
	EnvironmentIds []*string `json:"EnvironmentIds,omitnil,omitempty" name:"EnvironmentIds"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteEnvironmentsResponse struct {
	*tchttp.BaseResponse
	Response *DeleteEnvironmentsResponseParams `json:"Response"`
}

func (r *DeleteEnvironmentsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteEnvironmentsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteProClusterRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DeleteProClusterRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DeleteProClusterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteProClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteProClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteProClusterResponseParams struct {
	// Order number of the terminated instance.
	DealName *string `json:"DealName,omitnil,omitempty" name:"DealName"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteProClusterResponse struct {
	*tchttp.BaseResponse
	Response *DeleteProClusterResponseParams `json:"Response"`
}

func (r *DeleteProClusterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteProClusterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQBindingRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Routing relationship ID.
	BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"`
}

type DeleteRabbitMQBindingRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Routing relationship ID.
	BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"`
}

func (r *DeleteRabbitMQBindingRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQBindingRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	delete(f, "BindingId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQBindingRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQBindingResponseParams struct {
	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Vhost parameter.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Routing relationship ID.
	BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRabbitMQBindingResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRabbitMQBindingResponseParams `json:"Response"`
}

func (r *DeleteRabbitMQBindingResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQBindingResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQPermissionRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. effective User names can be found by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and locating the list of users under the User and permission management tab, thereby finding the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// VirtualHost name, such as testvhost. valid VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`
}

type DeleteRabbitMQPermissionRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. effective User names can be found by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and locating the list of users under the User and permission management tab, thereby finding the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// VirtualHost name, such as testvhost. valid VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`
}

func (r *DeleteRabbitMQPermissionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQPermissionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "User")
	delete(f, "VirtualHost")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQPermissionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQPermissionResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRabbitMQPermissionResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRabbitMQPermissionResponseParams `json:"Response"`
}

func (r *DeleteRabbitMQPermissionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQPermissionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQUserRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. effective User names can be found by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and locating the list of users under the User and permission management tab, thereby finding the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`
}

type DeleteRabbitMQUserRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. effective User names can be found by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and locating the list of users under the User and permission management tab, thereby finding the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`
}

func (r *DeleteRabbitMQUserRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQUserRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "User")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQUserRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQUserResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRabbitMQUserResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRabbitMQUserResponseParams `json:"Response"`
}

func (r *DeleteRabbitMQUserResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQUserResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQVipInstanceRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Whether the request is from the international website. Default value: false.
	IsIntl *bool `json:"IsIntl,omitnil,omitempty" name:"IsIntl"`
}

type DeleteRabbitMQVipInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Whether the request is from the international website. Default value: false.
	IsIntl *bool `json:"IsIntl,omitnil,omitempty" name:"IsIntl"`
}

func (r *DeleteRabbitMQVipInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQVipInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "IsIntl")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQVipInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQVipInstanceResponseParams struct {
	// Order ID.
	TranId *string `json:"TranId,omitnil,omitempty" name:"TranId"`

	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRabbitMQVipInstanceResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRabbitMQVipInstanceResponseParams `json:"Response"`
}

func (r *DeleteRabbitMQVipInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQVipInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQVirtualHostRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`
}

type DeleteRabbitMQVirtualHostRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`
}

func (r *DeleteRabbitMQVirtualHostRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQVirtualHostRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQVirtualHostRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRabbitMQVirtualHostResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRabbitMQVirtualHostResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRabbitMQVirtualHostResponseParams `json:"Response"`
}

func (r *DeleteRabbitMQVirtualHostResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRabbitMQVirtualHostResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQClusterRequestParams struct {
	// ID of the cluster to be deleted.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DeleteRocketMQClusterRequest struct {
	*tchttp.BaseRequest
	
	// ID of the cluster to be deleted.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DeleteRocketMQClusterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRocketMQClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQClusterResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRocketMQClusterResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRocketMQClusterResponseParams `json:"Response"`
}

func (r *DeleteRocketMQClusterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQClusterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQEnvironmentRolesRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name array.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DeleteRocketMQEnvironmentRolesRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name array.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DeleteRocketMQEnvironmentRolesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQEnvironmentRolesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "RoleNames")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRocketMQEnvironmentRolesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQEnvironmentRolesResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRocketMQEnvironmentRolesResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRocketMQEnvironmentRolesResponseParams `json:"Response"`
}

func (r *DeleteRocketMQEnvironmentRolesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQEnvironmentRolesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQGroupRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Consumer group name
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`
}

type DeleteRocketMQGroupRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Consumer group name
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`
}

func (r *DeleteRocketMQGroupRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQGroupRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "GroupId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRocketMQGroupRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQGroupResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRocketMQGroupResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRocketMQGroupResponseParams `json:"Response"`
}

func (r *DeleteRocketMQGroupResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQGroupResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQNamespaceRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`
}

type DeleteRocketMQNamespaceRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`
}

func (r *DeleteRocketMQNamespaceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQNamespaceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRocketMQNamespaceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQNamespaceResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRocketMQNamespaceResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRocketMQNamespaceResponseParams `json:"Response"`
}

func (r *DeleteRocketMQNamespaceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQNamespaceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQRolesRequestParams struct {
	// Role name array.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DeleteRocketMQRolesRequest struct {
	*tchttp.BaseRequest
	
	// Role name array.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DeleteRocketMQRolesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQRolesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RoleNames")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRocketMQRolesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQRolesResponseParams struct {
	// Successfully deleted role name array.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRocketMQRolesResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRocketMQRolesResponseParams `json:"Response"`
}

func (r *DeleteRocketMQRolesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQRolesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQTopicRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`
}

type DeleteRocketMQTopicRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`
}

func (r *DeleteRocketMQTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "Topic")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRocketMQTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQTopicResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRocketMQTopicResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRocketMQTopicResponseParams `json:"Response"`
}

func (r *DeleteRocketMQTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQVipInstanceRequestParams struct {
	// Cluster ID of the instance.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DeleteRocketMQVipInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID of the instance.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DeleteRocketMQVipInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQVipInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRocketMQVipInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRocketMQVipInstanceResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRocketMQVipInstanceResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRocketMQVipInstanceResponseParams `json:"Response"`
}

func (r *DeleteRocketMQVipInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRocketMQVipInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRolesRequestParams struct {
	// Array of role names.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DeleteRolesRequest struct {
	*tchttp.BaseRequest
	
	// Array of role names.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DeleteRolesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRolesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RoleNames")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRolesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRolesResponseParams struct {
	// Name array of roles successfully deleted.
	RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteRolesResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRolesResponseParams `json:"Response"`
}

func (r *DeleteRolesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteRolesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteSubscriptionsRequestParams struct {
	// Subscription set. Up to 20 subscriptions can be deleted at a time.
	SubscriptionTopicSets []*SubscriptionTopic `json:"SubscriptionTopicSets,omitnil,omitempty" name:"SubscriptionTopicSets"`

	// Pulsar cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Whether to forcibly delete a subscription. Default value: `false`.
	Force *bool `json:"Force,omitnil,omitempty" name:"Force"`
}

type DeleteSubscriptionsRequest struct {
	*tchttp.BaseRequest
	
	// Subscription set. Up to 20 subscriptions can be deleted at a time.
	SubscriptionTopicSets []*SubscriptionTopic `json:"SubscriptionTopicSets,omitnil,omitempty" name:"SubscriptionTopicSets"`

	// Pulsar cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Whether to forcibly delete a subscription. Default value: `false`.
	Force *bool `json:"Force,omitnil,omitempty" name:"Force"`
}

func (r *DeleteSubscriptionsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteSubscriptionsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SubscriptionTopicSets")
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "Force")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteSubscriptionsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteSubscriptionsResponseParams struct {
	// Array of successfully deleted subscriptions.
	SubscriptionTopicSets []*SubscriptionTopic `json:"SubscriptionTopicSets,omitnil,omitempty" name:"SubscriptionTopicSets"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteSubscriptionsResponse struct {
	*tchttp.BaseResponse
	Response *DeleteSubscriptionsResponseParams `json:"Response"`
}

func (r *DeleteSubscriptionsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteSubscriptionsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteTopicsRequestParams struct {
	// Topic set. Up to 20 topics can be deleted at a time.
	TopicSets []*TopicRecord `json:"TopicSets,omitnil,omitempty" name:"TopicSets"`

	// Pulsar cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Whether to forcibly delete a topic. Default value: `false`.
	Force *bool `json:"Force,omitnil,omitempty" name:"Force"`
}

type DeleteTopicsRequest struct {
	*tchttp.BaseRequest
	
	// Topic set. Up to 20 topics can be deleted at a time.
	TopicSets []*TopicRecord `json:"TopicSets,omitnil,omitempty" name:"TopicSets"`

	// Pulsar cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Whether to forcibly delete a topic. Default value: `false`.
	Force *bool `json:"Force,omitnil,omitempty" name:"Force"`
}

func (r *DeleteTopicsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteTopicsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicSets")
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "Force")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteTopicsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteTopicsResponseParams struct {
	// Array of deleted topics.
	TopicSets []*TopicRecord `json:"TopicSets,omitnil,omitempty" name:"TopicSets"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteTopicsResponse struct {
	*tchttp.BaseResponse
	Response *DeleteTopicsResponseParams `json:"Response"`
}

func (r *DeleteTopicsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteTopicsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeBindClustersRequestParams struct {

}

type DescribeBindClustersRequest struct {
	*tchttp.BaseRequest
	
}

func (r *DescribeBindClustersRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeBindClustersRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeBindClustersRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeBindClustersResponseParams struct {
	// The number of dedicated clusters
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of dedicated clusters
	ClusterSet []*BindCluster `json:"ClusterSet,omitnil,omitempty" name:"ClusterSet"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeBindClustersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeBindClustersResponseParams `json:"Response"`
}

func (r *DescribeBindClustersResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeBindClustersResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeBindVpcsRequestParams struct {
	// Offset. If this parameter is left empty, 0 will be used by default.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of results to be returned. If this parameter is left empty, 10 will be used by default. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribeBindVpcsRequest struct {
	*tchttp.BaseRequest
	
	// Offset. If this parameter is left empty, 0 will be used by default.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of results to be returned. If this parameter is left empty, 10 will be used by default. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribeBindVpcsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeBindVpcsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeBindVpcsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeBindVpcsResponseParams struct {
	// Number of records.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Set of VPCs.
	VpcSets []*VpcBindRecord `json:"VpcSets,omitnil,omitempty" name:"VpcSets"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeBindVpcsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeBindVpcsResponseParams `json:"Response"`
}

func (r *DescribeBindVpcsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeBindVpcsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeClusterDetailRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribeClusterDetailRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribeClusterDetailRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeClusterDetailRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeClusterDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeClusterDetailResponseParams struct {
	// Cluster details
	ClusterSet *Cluster `json:"ClusterSet,omitnil,omitempty" name:"ClusterSet"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeClusterDetailResponse struct {
	*tchttp.BaseResponse
	Response *DescribeClusterDetailResponseParams `json:"Response"`
}

func (r *DescribeClusterDetailResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeClusterDetailResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeClustersRequestParams struct {
	// Start offset, which defaults to 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filter by cluster ID.
	ClusterIdList []*string `json:"ClusterIdList,omitnil,omitempty" name:"ClusterIdList"`

	// Whether to filter by tag.
	IsTagFilter *bool `json:"IsTagFilter,omitnil,omitempty" name:"IsTagFilter"`

	// Filter. Currently, you can filter by tag.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeClustersRequest struct {
	*tchttp.BaseRequest
	
	// Start offset, which defaults to 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filter by cluster ID.
	ClusterIdList []*string `json:"ClusterIdList,omitnil,omitempty" name:"ClusterIdList"`

	// Whether to filter by tag.
	IsTagFilter *bool `json:"IsTagFilter,omitnil,omitempty" name:"IsTagFilter"`

	// Filter. Currently, you can filter by tag.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeClustersRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeClustersRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "ClusterIdList")
	delete(f, "IsTagFilter")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeClustersRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeClustersResponseParams struct {
	// The number of clusters.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Cluster information list
	ClusterSet []*Cluster `json:"ClusterSet,omitnil,omitempty" name:"ClusterSet"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeClustersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeClustersResponseParams `json:"Response"`
}

func (r *DescribeClustersResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeClustersResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqQueueDetailRequestParams struct {
	// Exact match by `QueueName`
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`
}

type DescribeCmqQueueDetailRequest struct {
	*tchttp.BaseRequest
	
	// Exact match by `QueueName`
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`
}

func (r *DescribeCmqQueueDetailRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqQueueDetailRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "QueueName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCmqQueueDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqQueueDetailResponseParams struct {
	// List of queue details.
	QueueDescribe *CmqQueue `json:"QueueDescribe,omitnil,omitempty" name:"QueueDescribe"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCmqQueueDetailResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCmqQueueDetailResponseParams `json:"Response"`
}

func (r *DescribeCmqQueueDetailResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqQueueDetailResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqQueuesRequestParams struct {
	// Starting position of a queue list to be returned on the current page in case of paginated return. If a value is entered, `limit` must be specified. If this parameter is left empty, 0 will be used by default.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of queues to be returned per page in case of paginated return. If this parameter is not passed in, 20 will be used by default. Maximum value: 50.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filter by `QueueName`
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Filter by CMQ queue name.
	QueueNameList []*string `json:"QueueNameList,omitnil,omitempty" name:"QueueNameList"`

	// For filtering by tag, this parameter must be set to `true`.
	IsTagFilter *bool `json:"IsTagFilter,omitnil,omitempty" name:"IsTagFilter"`

	// Filter. Currently, you can filter by tag. The tag name must be prefixed with “tag:”, such as “tag: owner”, “tag: environment”, or “tag: business”.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeCmqQueuesRequest struct {
	*tchttp.BaseRequest
	
	// Starting position of a queue list to be returned on the current page in case of paginated return. If a value is entered, `limit` must be specified. If this parameter is left empty, 0 will be used by default.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of queues to be returned per page in case of paginated return. If this parameter is not passed in, 20 will be used by default. Maximum value: 50.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filter by `QueueName`
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Filter by CMQ queue name.
	QueueNameList []*string `json:"QueueNameList,omitnil,omitempty" name:"QueueNameList"`

	// For filtering by tag, this parameter must be set to `true`.
	IsTagFilter *bool `json:"IsTagFilter,omitnil,omitempty" name:"IsTagFilter"`

	// Filter. Currently, you can filter by tag. The tag name must be prefixed with “tag:”, such as “tag: owner”, “tag: environment”, or “tag: business”.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeCmqQueuesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqQueuesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "QueueName")
	delete(f, "QueueNameList")
	delete(f, "IsTagFilter")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCmqQueuesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqQueuesResponseParams struct {
	// The number of queues.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Queue list.
	QueueList []*CmqQueue `json:"QueueList,omitnil,omitempty" name:"QueueList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCmqQueuesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCmqQueuesResponseParams `json:"Response"`
}

func (r *DescribeCmqQueuesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqQueuesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqSubscriptionDetailRequestParams struct {
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Starting position of the list of topics to be returned on the current page in case of paginated return. If a value is entered, `limit` is required. If this parameter is left empty, 0 will be used by default
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of topics to be returned per page in case of paginated return. If this parameter is not passed in, 20 will be used by default. Maximum value: 50.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy search by `SubscriptionName`
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Queue name. Endpoint of bound subscription
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Query type. valid values: (1) topic; (2) queue.
	// Default value is topic. if queryType is topic, query subscriptions under the topic. if queryType is queue, query subscriptions bound to the queue.
	QueryType *string `json:"QueryType,omitnil,omitempty" name:"QueryType"`
}

type DescribeCmqSubscriptionDetailRequest struct {
	*tchttp.BaseRequest
	
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Starting position of the list of topics to be returned on the current page in case of paginated return. If a value is entered, `limit` is required. If this parameter is left empty, 0 will be used by default
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of topics to be returned per page in case of paginated return. If this parameter is not passed in, 20 will be used by default. Maximum value: 50.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy search by `SubscriptionName`
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Queue name. Endpoint of bound subscription
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Query type. valid values: (1) topic; (2) queue.
	// Default value is topic. if queryType is topic, query subscriptions under the topic. if queryType is queue, query subscriptions bound to the queue.
	QueryType *string `json:"QueryType,omitnil,omitempty" name:"QueryType"`
}

func (r *DescribeCmqSubscriptionDetailRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqSubscriptionDetailRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "SubscriptionName")
	delete(f, "QueueName")
	delete(f, "QueryType")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCmqSubscriptionDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqSubscriptionDetailResponseParams struct {
	// Total number
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Subscription attribute collection
	SubscriptionSet []*CmqSubscription `json:"SubscriptionSet,omitnil,omitempty" name:"SubscriptionSet"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCmqSubscriptionDetailResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCmqSubscriptionDetailResponseParams `json:"Response"`
}

func (r *DescribeCmqSubscriptionDetailResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqSubscriptionDetailResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqTopicDetailRequestParams struct {
	// Exact match by `TopicName`.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
}

type DescribeCmqTopicDetailRequest struct {
	*tchttp.BaseRequest
	
	// Exact match by `TopicName`.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
}

func (r *DescribeCmqTopicDetailRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqTopicDetailRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCmqTopicDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqTopicDetailResponseParams struct {
	// Topic details
	TopicDescribe *CmqTopic `json:"TopicDescribe,omitnil,omitempty" name:"TopicDescribe"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCmqTopicDetailResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCmqTopicDetailResponseParams `json:"Response"`
}

func (r *DescribeCmqTopicDetailResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqTopicDetailResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqTopicsRequestParams struct {
	// Starting position of a queue list to be returned on the current page in case of paginated return. If a value is entered, `limit` must be specified. If this parameter is left empty, 0 will be used by default.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of queues to be returned per page in case of paginated return. If this parameter is not passed in, 20 will be used by default. Maximum value: 50.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy search by `TopicName`
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Filter by CMQ topic name.
	TopicNameList []*string `json:"TopicNameList,omitnil,omitempty" name:"TopicNameList"`

	// For filtering by tag, this parameter must be set to `true`.
	IsTagFilter *bool `json:"IsTagFilter,omitnil,omitempty" name:"IsTagFilter"`

	// Filter. Currently, you can filter by tag. The tag name must be prefixed with “tag:”, such as “tag: owner”, “tag: environment”, or “tag: business”.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeCmqTopicsRequest struct {
	*tchttp.BaseRequest
	
	// Starting position of a queue list to be returned on the current page in case of paginated return. If a value is entered, `limit` must be specified. If this parameter is left empty, 0 will be used by default.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of queues to be returned per page in case of paginated return. If this parameter is not passed in, 20 will be used by default. Maximum value: 50.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy search by `TopicName`
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Filter by CMQ topic name.
	TopicNameList []*string `json:"TopicNameList,omitnil,omitempty" name:"TopicNameList"`

	// For filtering by tag, this parameter must be set to `true`.
	IsTagFilter *bool `json:"IsTagFilter,omitnil,omitempty" name:"IsTagFilter"`

	// Filter. Currently, you can filter by tag. The tag name must be prefixed with “tag:”, such as “tag: owner”, “tag: environment”, or “tag: business”.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeCmqTopicsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqTopicsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "TopicName")
	delete(f, "TopicNameList")
	delete(f, "IsTagFilter")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCmqTopicsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCmqTopicsResponseParams struct {
	// Topic list.
	TopicList []*CmqTopic `json:"TopicList,omitnil,omitempty" name:"TopicList"`

	// The total number of topics.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCmqTopicsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCmqTopicsResponseParams `json:"Response"`
}

func (r *DescribeCmqTopicsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCmqTopicsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeEnvironmentAttributesRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribeEnvironmentAttributesRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribeEnvironmentAttributesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeEnvironmentAttributesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeEnvironmentAttributesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeEnvironmentAttributesResponseParams struct {
	// TTL for unconsumed messages in seconds. Maximum value: 1296000 seconds (i.e., 15 days).
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Consumption rate limit in bytes/second. 0: unlimited.
	RateInByte *uint64 `json:"RateInByte,omitnil,omitempty" name:"RateInByte"`

	// Consumption rate limit in messages/second. 0: unlimited.
	RateInSize *uint64 `json:"RateInSize,omitnil,omitempty" name:"RateInSize"`

	// Retention policy for consumed messages in hours. 0: deleted immediately after consumption.
	RetentionHours *uint64 `json:"RetentionHours,omitnil,omitempty" name:"RetentionHours"`

	// Retention policy for consumed messages in GB. 0: deleted immediately after consumption.
	RetentionSize *uint64 `json:"RetentionSize,omitnil,omitempty" name:"RetentionSize"`

	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Number of replicas.
	Replicas *uint64 `json:"Replicas,omitnil,omitempty" name:"Replicas"`

	// Remarks.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeEnvironmentAttributesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeEnvironmentAttributesResponseParams `json:"Response"`
}

func (r *DescribeEnvironmentAttributesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeEnvironmentAttributesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeEnvironmentRolesRequestParams struct {
	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Offset, which defaults to 0 if left empty.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// * RoleName
	// Filter by role name for exact query.
	// Type: String
	// Required: No
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeEnvironmentRolesRequest struct {
	*tchttp.BaseRequest
	
	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Offset, which defaults to 0 if left empty.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// * RoleName
	// Filter by role name for exact query.
	// Type: String
	// Required: No
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeEnvironmentRolesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeEnvironmentRolesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "RoleName")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeEnvironmentRolesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeEnvironmentRolesResponseParams struct {
	// The number of records.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Namespace role set.
	EnvironmentRoleSets []*EnvironmentRole `json:"EnvironmentRoleSets,omitnil,omitempty" name:"EnvironmentRoleSets"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeEnvironmentRolesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeEnvironmentRolesResponseParams `json:"Response"`
}

func (r *DescribeEnvironmentRolesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeEnvironmentRolesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeEnvironmentsRequestParams struct {
	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Fuzzy search by namespace name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Offset, which defaults to 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// * EnvironmentId
	// Filter by namespace for exact query.
	// Type: String
	// Required: No
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeEnvironmentsRequest struct {
	*tchttp.BaseRequest
	
	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Fuzzy search by namespace name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Offset, which defaults to 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// * EnvironmentId
	// Filter by namespace for exact query.
	// Type: String
	// Required: No
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeEnvironmentsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeEnvironmentsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeEnvironmentsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeEnvironmentsResponseParams struct {
	// The number of namespaces.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Array of namespace sets.
	EnvironmentSet []*Environment `json:"EnvironmentSet,omitnil,omitempty" name:"EnvironmentSet"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeEnvironmentsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeEnvironmentsResponseParams `json:"Response"`
}

func (r *DescribeEnvironmentsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeEnvironmentsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMqMsgTraceRequestParams struct {
	// pulsar,rocketmq,rabbitmq,cmq
	Protocol *string `json:"Protocol,omitnil,omitempty" name:"Protocol"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Cluster id. cmq is empty.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace. cmq is empty.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic. empty for cmq. group id when querying rocketmq dead letters.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// cmq is required. fill in the blank for other protocols.
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Consumer Group and Subscription
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// The value is true when querying dead letters, and only valid for RocketMQ.
	QueryDlqMsg *bool `json:"QueryDlqMsg,omitnil,omitempty" name:"QueryDlqMsg"`

	// Message production time.
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`
}

type DescribeMqMsgTraceRequest struct {
	*tchttp.BaseRequest
	
	// pulsar,rocketmq,rabbitmq,cmq
	Protocol *string `json:"Protocol,omitnil,omitempty" name:"Protocol"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Cluster id. cmq is empty.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace. cmq is empty.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic. empty for cmq. group id when querying rocketmq dead letters.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// cmq is required. fill in the blank for other protocols.
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Consumer Group and Subscription
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// The value is true when querying dead letters, and only valid for RocketMQ.
	QueryDlqMsg *bool `json:"QueryDlqMsg,omitnil,omitempty" name:"QueryDlqMsg"`

	// Message production time.
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`
}

func (r *DescribeMqMsgTraceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMqMsgTraceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Protocol")
	delete(f, "MsgId")
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "QueueName")
	delete(f, "GroupName")
	delete(f, "QueryDlqMsg")
	delete(f, "ProduceTime")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMqMsgTraceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMqMsgTraceResponseParams struct {
	// Message content.
	Result []*TraceResult `json:"Result,omitnil,omitempty" name:"Result"`

	// Topic Name Displayed on Message Trace Page
	ShowTopicName *string `json:"ShowTopicName,omitnil,omitempty" name:"ShowTopicName"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMqMsgTraceResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMqMsgTraceResponseParams `json:"Response"`
}

func (r *DescribeMqMsgTraceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMqMsgTraceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMsgRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribeMsgRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribeMsgRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMsgRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "MsgId")
	delete(f, "TopicName")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMsgRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMsgResponseParams struct {
	// Message attributes.
	Properties *string `json:"Properties,omitnil,omitempty" name:"Properties"`

	// Message body.
	Body *string `json:"Body,omitnil,omitempty" name:"Body"`

	// Batch ID.
	BatchId *string `json:"BatchId,omitnil,omitempty" name:"BatchId"`

	// Production time.
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`

	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Producer name.
	ProducerName *string `json:"ProducerName,omitnil,omitempty" name:"ProducerName"`

	// Message key
	// Note: This field may return null, indicating that no valid values can be obtained.
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`

	// Message metadata information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Metadata *string `json:"Metadata,omitnil,omitempty" name:"Metadata"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMsgResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMsgResponseParams `json:"Response"`
}

func (r *DescribeMsgResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMsgResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMsgTraceRequestParams struct {
	// Environment (namespace).
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Message production time.
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`

	// Starting index. Default is 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns, default to 10 if not specified, maximum value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy matching of consumer group name.
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribeMsgTraceRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace).
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Message production time.
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`

	// Starting index. Default is 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns, default to 10 if not specified, maximum value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy matching of consumer group name.
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribeMsgTraceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMsgTraceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "MsgId")
	delete(f, "ProduceTime")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "SubscriptionName")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMsgTraceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMsgTraceResponseParams struct {
	// Produce information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProducerLog *ProducerLog `json:"ProducerLog,omitnil,omitempty" name:"ProducerLog"`

	// Service provider information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ServerLog *ServerLog `json:"ServerLog,omitnil,omitempty" name:"ServerLog"`

	// Consumption information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerLogs *ConsumerLogs `json:"ConsumerLogs,omitnil,omitempty" name:"ConsumerLogs"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMsgTraceResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMsgTraceResponseParams `json:"Response"`
}

func (r *DescribeMsgTraceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMsgTraceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePublisherSummaryRequestParams struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Topic name.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`
}

type DescribePublisherSummaryRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Topic name.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`
}

func (r *DescribePublisherSummaryRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePublisherSummaryRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "Namespace")
	delete(f, "Topic")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribePublisherSummaryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePublisherSummaryResponseParams struct {
	// Production rate (messages/sec).
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MsgRateIn *float64 `json:"MsgRateIn,omitnil,omitempty" name:"MsgRateIn"`

	// Production rate (byte/sec).
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MsgThroughputIn *float64 `json:"MsgThroughputIn,omitnil,omitempty" name:"MsgThroughputIn"`

	// The number of producers.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	PublisherCount *int64 `json:"PublisherCount,omitnil,omitempty" name:"PublisherCount"`

	// Message storage size in bytes.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribePublisherSummaryResponse struct {
	*tchttp.BaseResponse
	Response *DescribePublisherSummaryResponseParams `json:"Response"`
}

func (r *DescribePublisherSummaryResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePublisherSummaryResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePublishersRequestParams struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Topic name.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Parameter filter. The `ProducerName` and `Address` fields are supported.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Offset for query. Default value: `0`.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of query results displayed per page. Default value: `20`.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sort by field.
	Sort *Sort `json:"Sort,omitnil,omitempty" name:"Sort"`
}

type DescribePublishersRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Topic name.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Parameter filter. The `ProducerName` and `Address` fields are supported.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Offset for query. Default value: `0`.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of query results displayed per page. Default value: `20`.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sort by field.
	Sort *Sort `json:"Sort,omitnil,omitempty" name:"Sort"`
}

func (r *DescribePublishersRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePublishersRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "Namespace")
	delete(f, "Topic")
	delete(f, "Filters")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "Sort")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribePublishersRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePublishersResponseParams struct {
	// Total number of query results.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of producer information.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Publishers []*Publisher `json:"Publishers,omitnil,omitempty" name:"Publishers"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribePublishersResponse struct {
	*tchttp.BaseResponse
	Response *DescribePublishersResponseParams `json:"Response"`
}

func (r *DescribePublishersResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePublishersResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePulsarProInstanceDetailRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribePulsarProInstanceDetailRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribePulsarProInstanceDetailRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePulsarProInstanceDetailRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribePulsarProInstanceDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePulsarProInstanceDetailResponseParams struct {
	// Cluster information
	ClusterInfo *PulsarProClusterInfo `json:"ClusterInfo,omitnil,omitempty" name:"ClusterInfo"`

	// Cluster network access point information
	// Note: This field may return null, indicating that no valid values can be obtained.
	NetworkAccessPointInfos []*PulsarNetworkAccessPointInfo `json:"NetworkAccessPointInfos,omitnil,omitempty" name:"NetworkAccessPointInfos"`

	// Cluster specification information
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClusterSpecInfo *PulsarProClusterSpecInfo `json:"ClusterSpecInfo,omitnil,omitempty" name:"ClusterSpecInfo"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribePulsarProInstanceDetailResponse struct {
	*tchttp.BaseResponse
	Response *DescribePulsarProInstanceDetailResponseParams `json:"Response"`
}

func (r *DescribePulsarProInstanceDetailResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePulsarProInstanceDetailResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePulsarProInstancesRequestParams struct {
	// Query condition filter
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of queried items, which defaults to `20`.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Start offset for query
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribePulsarProInstancesRequest struct {
	*tchttp.BaseRequest
	
	// Query condition filter
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of queried items, which defaults to `20`.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Start offset for query
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribePulsarProInstancesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePulsarProInstancesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribePulsarProInstancesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePulsarProInstancesResponseParams struct {
	// The total number of unpaginated items
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Instance information list
	Instances []*PulsarProInstance `json:"Instances,omitnil,omitempty" name:"Instances"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribePulsarProInstancesResponse struct {
	*tchttp.BaseResponse
	Response *DescribePulsarProInstancesResponseParams `json:"Response"`
}

func (r *DescribePulsarProInstancesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePulsarProInstancesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQBindingsRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Specifies the page offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page limit. default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search keyword. Performs fuzzy search based on source exchange name, target resource name, or binding key.
	SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"`

	// Precise search filter based on source exchange.
	SourceExchange *string `json:"SourceExchange,omitnil,omitempty" name:"SourceExchange"`

	// Filters by the target queue name. cannot be set with DestinationExchange filtering.
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Precise search filter based on target exchange. Cannot be set simultaneously with queuename filter.
	DestinationExchange *string `json:"DestinationExchange,omitnil,omitempty" name:"DestinationExchange"`
}

type DescribeRabbitMQBindingsRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Specifies the page offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page limit. default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search keyword. Performs fuzzy search based on source exchange name, target resource name, or binding key.
	SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"`

	// Precise search filter based on source exchange.
	SourceExchange *string `json:"SourceExchange,omitnil,omitempty" name:"SourceExchange"`

	// Filters by the target queue name. cannot be set with DestinationExchange filtering.
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Precise search filter based on target exchange. Cannot be set simultaneously with queuename filter.
	DestinationExchange *string `json:"DestinationExchange,omitnil,omitempty" name:"DestinationExchange"`
}

func (r *DescribeRabbitMQBindingsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQBindingsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "SearchWord")
	delete(f, "SourceExchange")
	delete(f, "QueueName")
	delete(f, "DestinationExchange")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQBindingsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQBindingsResponseParams struct {
	// Route relationship list
	BindingInfoList []*RabbitMQBindingListInfo `json:"BindingInfoList,omitnil,omitempty" name:"BindingInfoList"`

	// Number of routing relationships.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQBindingsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQBindingsResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQBindingsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQBindingsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQExchangesRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Specifies the pagination offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination limit. default is 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search keyword, supports fuzzy matching.  
	SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"`

	// Filters the exchange type. each element in the array is a selected filter type. only direct, fanout, topic, and header are supported.
	ExchangeTypeFilters []*string `json:"ExchangeTypeFilters,omitnil,omitempty" name:"ExchangeTypeFilters"`

	// Filter exchange creation source, "system": "system created", "user": "user created".
	ExchangeCreatorFilters []*string `json:"ExchangeCreatorFilters,omitnil,omitempty" name:"ExchangeCreatorFilters"`

	// Exchange name, used for exact matching.
	ExchangeName *string `json:"ExchangeName,omitnil,omitempty" name:"ExchangeName"`

	// Sorting field:
	// MessageRateInOut - Total production and consumption rate.
	// MessageRateIn - Production rate.
	// MessageRateOut - Consumption rate: Specifies the message consumption rate.
	SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"`

	// Sorting order. Valid values: ascend and descend.
	// Specifies the ascending order.
	// Desc - descending.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`
}

type DescribeRabbitMQExchangesRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Specifies the pagination offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination limit. default is 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search keyword, supports fuzzy matching.  
	SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"`

	// Filters the exchange type. each element in the array is a selected filter type. only direct, fanout, topic, and header are supported.
	ExchangeTypeFilters []*string `json:"ExchangeTypeFilters,omitnil,omitempty" name:"ExchangeTypeFilters"`

	// Filter exchange creation source, "system": "system created", "user": "user created".
	ExchangeCreatorFilters []*string `json:"ExchangeCreatorFilters,omitnil,omitempty" name:"ExchangeCreatorFilters"`

	// Exchange name, used for exact matching.
	ExchangeName *string `json:"ExchangeName,omitnil,omitempty" name:"ExchangeName"`

	// Sorting field:
	// MessageRateInOut - Total production and consumption rate.
	// MessageRateIn - Production rate.
	// MessageRateOut - Consumption rate: Specifies the message consumption rate.
	SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"`

	// Sorting order. Valid values: ascend and descend.
	// Specifies the ascending order.
	// Desc - descending.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`
}

func (r *DescribeRabbitMQExchangesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQExchangesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "SearchWord")
	delete(f, "ExchangeTypeFilters")
	delete(f, "ExchangeCreatorFilters")
	delete(f, "ExchangeName")
	delete(f, "SortElement")
	delete(f, "SortOrder")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQExchangesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQExchangesResponseParams struct {
	// Policy list information.
	ExchangeInfoList []*RabbitMQExchangeListInfo `json:"ExchangeInfoList,omitnil,omitempty" name:"ExchangeInfoList"`

	// Total number of policy results.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQExchangesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQExchangesResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQExchangesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQExchangesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQNodeListRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. specifies the effective InstanceId that can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Offset, default value 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page limit. default value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Node name for fuzzy search
	NodeName *string `json:"NodeName,omitnil,omitempty" name:"NodeName"`

	// Filter parameter name and value. currently only support filtering based on node status.
	// "Name": "nodeStatus"
	// "Value": running or down
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorts by the specified element. only 2 are present.
	// CPU usage: specifies the CPU utilization of the node.
	// diskUsage: specifies the node disk utilization.
	SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"`

	// Sorting order.
	// Valid values: `ascend`, `descend`.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`
}

type DescribeRabbitMQNodeListRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. specifies the effective InstanceId that can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Offset, default value 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page limit. default value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Node name for fuzzy search
	NodeName *string `json:"NodeName,omitnil,omitempty" name:"NodeName"`

	// Filter parameter name and value. currently only support filtering based on node status.
	// "Name": "nodeStatus"
	// "Value": running or down
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorts by the specified element. only 2 are present.
	// CPU usage: specifies the CPU utilization of the node.
	// diskUsage: specifies the node disk utilization.
	SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"`

	// Sorting order.
	// Valid values: `ascend`, `descend`.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`
}

func (r *DescribeRabbitMQNodeListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQNodeListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "NodeName")
	delete(f, "Filters")
	delete(f, "SortElement")
	delete(f, "SortOrder")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQNodeListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQNodeListResponseParams struct {
	// Specifies the cluster node quantity.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Listing Cluster Nodes
	// Note: This field may return null, indicating that no valid values can be obtained.
	NodeList []*RabbitMQPrivateNode `json:"NodeList,omitnil,omitempty" name:"NodeList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQNodeListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQNodeListResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQNodeListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQNodeListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQPermissionRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. effective User names can be found by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and locating the list of users under the User and permission management tab, thereby finding the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// VirtualHost name, such as testvhost. valid VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Specifies the page Offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page Limit. default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeRabbitMQPermissionRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. effective User names can be found by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and locating the list of users under the User and permission management tab, thereby finding the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// VirtualHost name, such as testvhost. valid VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Specifies the page Offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page Limit. default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeRabbitMQPermissionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQPermissionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "User")
	delete(f, "VirtualHost")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQPermissionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQPermissionResponseParams struct {
	// Specifies the number of permissions returned.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Permission details list.
	RabbitMQPermissionList []*RabbitMQPermission `json:"RabbitMQPermissionList,omitnil,omitempty" name:"RabbitMQPermissionList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQPermissionResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQPermissionResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQPermissionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQPermissionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQQueueDetailRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Queue Name
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`
}

type DescribeRabbitMQQueueDetailRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Queue Name
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`
}

func (r *DescribeRabbitMQQueueDetailRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQQueueDetailRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	delete(f, "QueueName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQQueueDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQQueueDetailResponseParams struct {
	// Instance name
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Vhost parameter.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Queue name.
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Queue type. Valid values: classic and quorum.
	QueueType *string `json:"QueueType,omitnil,omitempty" name:"QueueType"`

	// The number of online consumers.
	// 
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Consumers *int64 `json:"Consumers,omitnil,omitempty" name:"Consumers"`

	// Durable queue flag.
	Durable *bool `json:"Durable,omitnil,omitempty" name:"Durable"`

	// Automatic cleanup.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	AutoDelete *bool `json:"AutoDelete,omitnil,omitempty" name:"AutoDelete"`

	// Remarks
	// 
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Messagettl parameter, specific to classic type.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MessageTTL *int64 `json:"MessageTTL,omitnil,omitempty" name:"MessageTTL"`

	// Autoexpire parameter.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	AutoExpire *int64 `json:"AutoExpire,omitnil,omitempty" name:"AutoExpire"`

	// The maxlength parameter specifies the maximum length.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MaxLength *int64 `json:"MaxLength,omitnil,omitempty" name:"MaxLength"`

	// The maxlengthbytes parameter specifies the maximum length in bytes.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MaxLengthBytes *int64 `json:"MaxLengthBytes,omitnil,omitempty" name:"MaxLengthBytes"`

	// The deliverylimit parameter is used for quorum type.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	DeliveryLimit *int64 `json:"DeliveryLimit,omitnil,omitempty" name:"DeliveryLimit"`

	// The overflowbehaviour parameter specifies the behavior when overflow occurs. Valid values: drop-head, reject-publish, reject-publish-dlx.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	OverflowBehaviour *string `json:"OverflowBehaviour,omitnil,omitempty" name:"OverflowBehaviour"`

	// The deadletterexchange parameter specifies the dead letter exchange.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	DeadLetterExchange *string `json:"DeadLetterExchange,omitnil,omitempty" name:"DeadLetterExchange"`

	// The deadletterroutingkey parameter specifies the routing key for dead letters. Valid values: [value1, value2, value3].
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	DeadLetterRoutingKey *string `json:"DeadLetterRoutingKey,omitnil,omitempty" name:"DeadLetterRoutingKey"`

	// The singleactiveconsumer parameter indicates whether only one consumer can be active at a time. Valid values: [true, false].
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	SingleActiveConsumer *bool `json:"SingleActiveConsumer,omitnil,omitempty" name:"SingleActiveConsumer"`

	// The maximumpriority parameter, for classic type only, specifies the maximum priority level. Value range: 1-30.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MaximumPriority *int64 `json:"MaximumPriority,omitnil,omitempty" name:"MaximumPriority"`

	// The lazymode parameter, for classic type only, indicates whether lazy mode is enabled. Valid values: [true, false].
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	LazyMode *bool `json:"LazyMode,omitnil,omitempty" name:"LazyMode"`

	// The masterlocator parameter, for classic type only, specifies the master locator strategy. Valid values: [strategy1, strategy2, strategy3].
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MasterLocator *string `json:"MasterLocator,omitnil,omitempty" name:"MasterLocator"`

	// The maxinmemorylength parameter, specific to quorum type.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MaxInMemoryLength *int64 `json:"MaxInMemoryLength,omitnil,omitempty" name:"MaxInMemoryLength"`

	// The maxinmemorybytes parameter, specific to quorum type.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MaxInMemoryBytes *int64 `json:"MaxInMemoryBytes,omitnil,omitempty" name:"MaxInMemoryBytes"`

	// Creation timestamp. Unit: seconds.
	CreateTime *int64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Node
	// 
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Node *string `json:"Node,omitnil,omitempty" name:"Node"`

	// Quorum queue dead letter consistency policy.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	DeadLetterStrategy *string `json:"DeadLetterStrategy,omitnil,omitempty" name:"DeadLetterStrategy"`

	// Leader election policy for quorum queue.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	QueueLeaderLocator *string `json:"QueueLeaderLocator,omitnil,omitempty" name:"QueueLeaderLocator"`

	// Initial replica group size of arbitration queue.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	QuorumInitialGroupSize *int64 `json:"QuorumInitialGroupSize,omitnil,omitempty" name:"QuorumInitialGroupSize"`

	// Whether the queue is an exclusive queue.
	Exclusive *bool `json:"Exclusive,omitnil,omitempty" name:"Exclusive"`

	// Effective policy name.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Policy *string `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Extended parameters of the key-value type.
	Arguments *string `json:"Arguments,omitnil,omitempty" name:"Arguments"`

	// Creation timestamp.
	CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"`

	// Modification timestamp.
	ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQQueueDetailResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQQueueDetailResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQQueueDetailResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQQueueDetailResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQQueuesRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Specifies the pagination Offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination Limit. default is 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search keywords
	SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"`

	// Filter criteria for queue type. valid values: "all" (default): filter regular and quorum queues; "classic": filter classic (ordinary) queues; "quorum": filter quorum queues.
	QueueType *string `json:"QueueType,omitnil,omitempty" name:"QueueType"`

	// Sorting field.
	// ConsumerNumber - Indicates the number of online consumers.
	// MessageHeapCount - Indicates the number of retained messages.
	// MessageRateInOut - Indicates the total production and consumption rate.
	// MessageRateIn - Production rate.
	// MessageRateOut - Consumption rate: Specifies the message consumption rate.
	SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"`

	// Sorting order. Valid values: ascend and descend.
	// Specifies the ascending order.
	// Desc - descending.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`
}

type DescribeRabbitMQQueuesRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Specifies the pagination Offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination Limit. default is 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search keywords
	SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"`

	// Filter criteria for queue type. valid values: "all" (default): filter regular and quorum queues; "classic": filter classic (ordinary) queues; "quorum": filter quorum queues.
	QueueType *string `json:"QueueType,omitnil,omitempty" name:"QueueType"`

	// Sorting field.
	// ConsumerNumber - Indicates the number of online consumers.
	// MessageHeapCount - Indicates the number of retained messages.
	// MessageRateInOut - Indicates the total production and consumption rate.
	// MessageRateIn - Production rate.
	// MessageRateOut - Consumption rate: Specifies the message consumption rate.
	SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"`

	// Sorting order. Valid values: ascend and descend.
	// Specifies the ascending order.
	// Desc - descending.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`
}

func (r *DescribeRabbitMQQueuesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQQueuesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "SearchWord")
	delete(f, "QueueType")
	delete(f, "SortElement")
	delete(f, "SortOrder")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQQueuesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQQueuesResponseParams struct {
	// Queue list information.
	QueueInfoList []*RabbitMQQueueListInfo `json:"QueueInfoList,omitnil,omitempty" name:"QueueInfoList"`

	// Number of queues
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQQueuesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQQueuesResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQQueuesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQQueuesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQUserRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username search by prefix or suffix
	SearchUser *string `json:"SearchUser,omitnil,omitempty" name:"SearchUser"`

	// Specifies the page Offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page Limit. default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Username, which is queried by exact match.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// User tag, used to determine the access permission of the user for RabbitMQ Management.
	// management: ordinary console user. monitoring: administrative console user. other value: non-console user.
	Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"`
}

type DescribeRabbitMQUserRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username search by prefix or suffix
	SearchUser *string `json:"SearchUser,omitnil,omitempty" name:"SearchUser"`

	// Specifies the page Offset. default is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page Limit. default value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Username, which is queried by exact match.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// User tag, used to determine the access permission of the user for RabbitMQ Management.
	// management: ordinary console user. monitoring: administrative console user. other value: non-console user.
	Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"`
}

func (r *DescribeRabbitMQUserRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQUserRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "SearchUser")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "User")
	delete(f, "Tags")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQUserRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQUserResponseParams struct {
	// Returned number of users
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The list of the created TDMQ for RabbitMQ users
	RabbitMQUserList []*RabbitMQUser `json:"RabbitMQUserList,omitnil,omitempty" name:"RabbitMQUserList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQUserResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQUserResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQUserResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQUserResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQVipInstanceRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribeRabbitMQVipInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribeRabbitMQVipInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQVipInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQVipInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQVipInstanceResponseParams struct {

	ClusterInfo *RabbitMQClusterInfo `json:"ClusterInfo,omitnil,omitempty" name:"ClusterInfo"`


	ClusterSpecInfo *RabbitMQClusterSpecInfo `json:"ClusterSpecInfo,omitnil,omitempty" name:"ClusterSpecInfo"`

	// Cluster network information.
	ClusterNetInfo *RabbitMQClusterAccessInfo `json:"ClusterNetInfo,omitnil,omitempty" name:"ClusterNetInfo"`

	// Cluster allowlist.
	ClusterWhiteListInfo *RabbitMQClusterWhiteListInfo `json:"ClusterWhiteListInfo,omitnil,omitempty" name:"ClusterWhiteListInfo"`


	VirtualHostQuota *VirtualHostQuota `json:"VirtualHostQuota,omitnil,omitempty" name:"VirtualHostQuota"`


	ExchangeQuota *ExchangeQuota `json:"ExchangeQuota,omitnil,omitempty" name:"ExchangeQuota"`


	QueueQuota *QueueQuota `json:"QueueQuota,omitnil,omitempty" name:"QueueQuota"`

	// User quota information.
	UserQuota *RabbitMQUserQuota `json:"UserQuota,omitnil,omitempty" name:"UserQuota"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQVipInstanceResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQVipInstanceResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQVipInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQVipInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQVipInstancesRequestParams struct {
	// Query condition filter
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Maximum number of items for query. Default value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeRabbitMQVipInstancesRequest struct {
	*tchttp.BaseRequest
	
	// Query condition filter
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Maximum number of items for query. Default value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Starting position of the query. Default value: 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeRabbitMQVipInstancesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQVipInstancesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQVipInstancesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQVipInstancesResponseParams struct {
	// The total number of unpaginated items
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Instance information list
	Instances []*RabbitMQVipInstance `json:"Instances,omitnil,omitempty" name:"Instances"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQVipInstancesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQVipInstancesResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQVipInstancesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQVipInstancesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQVirtualHostRequestParams struct {
	// Cluster instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Vhost name. If this parameter is not specified, all will be queried by default.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Pagination offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination limit
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy query by vhost name
	Filters *Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Specifies the sorting field.
	// MessageHeapCount - specifies the message backlog count.
	// MessageRateInOut - total production and consumption rate.
	// MessageRateIn - production rate.
	// MessageRateOut - consumption rate.
	SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"`

	// Sorting order. Valid values: ascend and descend.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`
}

type DescribeRabbitMQVirtualHostRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Vhost name. If this parameter is not specified, all will be queried by default.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Pagination offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination limit
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy query by vhost name
	Filters *Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Specifies the sorting field.
	// MessageHeapCount - specifies the message backlog count.
	// MessageRateInOut - total production and consumption rate.
	// MessageRateIn - production rate.
	// MessageRateOut - consumption rate.
	SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"`

	// Sorting order. Valid values: ascend and descend.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`
}

func (r *DescribeRabbitMQVirtualHostRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQVirtualHostRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "Filters")
	delete(f, "SortElement")
	delete(f, "SortOrder")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQVirtualHostRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRabbitMQVirtualHostResponseParams struct {
	// Returned number of vhosts
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of vhost details
	VirtualHostList []*RabbitMQVirtualHostInfo `json:"VirtualHostList,omitnil,omitempty" name:"VirtualHostList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRabbitMQVirtualHostResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRabbitMQVirtualHostResponseParams `json:"Response"`
}

func (r *DescribeRabbitMQVirtualHostResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRabbitMQVirtualHostResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQClusterRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribeRocketMQClusterRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribeRocketMQClusterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQClusterResponseParams struct {
	// Cluster information
	ClusterInfo *RocketMQClusterInfo `json:"ClusterInfo,omitnil,omitempty" name:"ClusterInfo"`

	// Cluster configuration
	ClusterConfig *RocketMQClusterConfig `json:"ClusterConfig,omitnil,omitempty" name:"ClusterConfig"`

	// Cluster recent usage, about to be deprecated. Use TCOP to obtain related data.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClusterStats *RocketMQClusterRecentStats `json:"ClusterStats,omitnil,omitempty" name:"ClusterStats"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQClusterResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQClusterResponseParams `json:"Response"`
}

func (r *DescribeRocketMQClusterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQClusterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQClustersRequestParams struct {
	// Offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The max number of returned results.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search by cluster ID.
	IdKeyword *string `json:"IdKeyword,omitnil,omitempty" name:"IdKeyword"`

	// Search by cluster name.
	NameKeyword *string `json:"NameKeyword,omitnil,omitempty" name:"NameKeyword"`

	// Filter by cluster ID.
	ClusterIdList []*string `json:"ClusterIdList,omitnil,omitempty" name:"ClusterIdList"`

	// For filtering by tag, this parameter must be set to `true`.
	IsTagFilter *bool `json:"IsTagFilter,omitnil,omitempty" name:"IsTagFilter"`

	// Filter. Currently, you can filter only by tag.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeRocketMQClustersRequest struct {
	*tchttp.BaseRequest
	
	// Offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The max number of returned results.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search by cluster ID.
	IdKeyword *string `json:"IdKeyword,omitnil,omitempty" name:"IdKeyword"`

	// Search by cluster name.
	NameKeyword *string `json:"NameKeyword,omitnil,omitempty" name:"NameKeyword"`

	// Filter by cluster ID.
	ClusterIdList []*string `json:"ClusterIdList,omitnil,omitempty" name:"ClusterIdList"`

	// For filtering by tag, this parameter must be set to `true`.
	IsTagFilter *bool `json:"IsTagFilter,omitnil,omitempty" name:"IsTagFilter"`

	// Filter. Currently, you can filter only by tag.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeRocketMQClustersRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQClustersRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "IdKeyword")
	delete(f, "NameKeyword")
	delete(f, "ClusterIdList")
	delete(f, "IsTagFilter")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQClustersRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQClustersResponseParams struct {
	// Cluster information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClusterList []*RocketMQClusterDetail `json:"ClusterList,omitnil,omitempty" name:"ClusterList"`

	// The total number of returned results.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQClustersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQClustersResponseParams `json:"Response"`
}

func (r *DescribeRocketMQClustersResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQClustersResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQEnvironmentRolesRequestParams struct {
	// Required. Specifies the ID of the RocketMQ cluster.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Starting index. Default is 0 if left empty.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns, default to 10 if not specified, maximum value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Filters RoleName by role name for precise query. Type: string. Required: no.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeRocketMQEnvironmentRolesRequest struct {
	*tchttp.BaseRequest
	
	// Required. Specifies the ID of the RocketMQ cluster.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Starting index. Default is 0 if left empty.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns, default to 10 if not specified, maximum value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Filters RoleName by role name for precise query. Type: string. Required: no.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeRocketMQEnvironmentRolesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQEnvironmentRolesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "RoleName")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQEnvironmentRolesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQEnvironmentRolesResponseParams struct {
	// Record count.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Namespace role collection.
	EnvironmentRoleSets []*EnvironmentRole `json:"EnvironmentRoleSets,omitnil,omitempty" name:"EnvironmentRoleSets"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQEnvironmentRolesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQEnvironmentRolesResponseParams `json:"Response"`
}

func (r *DescribeRocketMQEnvironmentRolesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQEnvironmentRolesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQGroupsRequestParams struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The max number of returned results.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Topic name, which can be used to query all subscription groups under the topic
	FilterTopic *string `json:"FilterTopic,omitnil,omitempty" name:"FilterTopic"`

	// Consumer group query by consumer group name. Fuzzy query is supported
	FilterGroup *string `json:"FilterGroup,omitnil,omitempty" name:"FilterGroup"`

	// Sorts by the specified field. Valid value: subscribeNum: number of subscribed topics.
	SortedBy *string `json:"SortedBy,omitnil,omitempty" name:"SortedBy"`

	// Sort in ascending or descending order. Valid values: `asc`, `desc`.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`

	// Subscription group name. After it is specified, the information of only this subscription group will be returned.
	FilterOneGroup *string `json:"FilterOneGroup,omitnil,omitempty" name:"FilterOneGroup"`

	// Group type
	Types []*string `json:"Types,omitnil,omitempty" name:"Types"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`
}

type DescribeRocketMQGroupsRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The max number of returned results.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Topic name, which can be used to query all subscription groups under the topic
	FilterTopic *string `json:"FilterTopic,omitnil,omitempty" name:"FilterTopic"`

	// Consumer group query by consumer group name. Fuzzy query is supported
	FilterGroup *string `json:"FilterGroup,omitnil,omitempty" name:"FilterGroup"`

	// Sorts by the specified field. Valid value: subscribeNum: number of subscribed topics.
	SortedBy *string `json:"SortedBy,omitnil,omitempty" name:"SortedBy"`

	// Sort in ascending or descending order. Valid values: `asc`, `desc`.
	SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"`

	// Subscription group name. After it is specified, the information of only this subscription group will be returned.
	FilterOneGroup *string `json:"FilterOneGroup,omitnil,omitempty" name:"FilterOneGroup"`

	// Group type
	Types []*string `json:"Types,omitnil,omitempty" name:"Types"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`
}

func (r *DescribeRocketMQGroupsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQGroupsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "FilterTopic")
	delete(f, "FilterGroup")
	delete(f, "SortedBy")
	delete(f, "SortOrder")
	delete(f, "FilterOneGroup")
	delete(f, "Types")
	delete(f, "TagFilters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQGroupsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQGroupsResponseParams struct {
	// The total number of subscription groups.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of subscription groups
	Groups []*RocketMQGroup `json:"Groups,omitnil,omitempty" name:"Groups"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQGroupsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQGroupsResponseParams `json:"Response"`
}

func (r *DescribeRocketMQGroupsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQGroupsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQMsgRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace ID
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name. Pass in the group ID when querying a dead letter queue.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// ID of a TDMQ for Pulsar message
	PulsarMsgId *string `json:"PulsarMsgId,omitnil,omitempty" name:"PulsarMsgId"`

	// The value of this parameter is `true` when you query a dead letter queue. It only applies to TDMQ for RocketMQ.
	//
	// Deprecated: QueryDlqMsg is deprecated.
	QueryDlqMsg *bool `json:"QueryDlqMsg,omitnil,omitempty" name:"QueryDlqMsg"`

	// The value is true when querying dead letters, and only valid for RocketMQ.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`

	// Pagination offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination limit
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filters consumption details based on the consumer group name.
	FilterTrackGroup *string `json:"FilterTrackGroup,omitnil,omitempty" name:"FilterTrackGroup"`
}

type DescribeRocketMQMsgRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace ID
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name. Pass in the group ID when querying a dead letter queue.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// ID of a TDMQ for Pulsar message
	PulsarMsgId *string `json:"PulsarMsgId,omitnil,omitempty" name:"PulsarMsgId"`

	// The value of this parameter is `true` when you query a dead letter queue. It only applies to TDMQ for RocketMQ.
	QueryDlqMsg *bool `json:"QueryDlqMsg,omitnil,omitempty" name:"QueryDlqMsg"`

	// The value is true when querying dead letters, and only valid for RocketMQ.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`

	// Pagination offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination limit
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filters consumption details based on the consumer group name.
	FilterTrackGroup *string `json:"FilterTrackGroup,omitnil,omitempty" name:"FilterTrackGroup"`
}

func (r *DescribeRocketMQMsgRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQMsgRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "MsgId")
	delete(f, "PulsarMsgId")
	delete(f, "QueryDlqMsg")
	delete(f, "QueryDeadLetterMessage")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "FilterTrackGroup")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQMsgRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQMsgResponseParams struct {
	// Message body
	Body *string `json:"Body,omitnil,omitempty" name:"Body"`

	// Details parameter
	Properties *string `json:"Properties,omitnil,omitempty" name:"Properties"`

	// Production time
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Producer address
	ProducerAddr *string `json:"ProducerAddr,omitnil,omitempty" name:"ProducerAddr"`

	// Consumer group consumption list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MessageTracks []*RocketMQMessageTrack `json:"MessageTracks,omitnil,omitempty" name:"MessageTracks"`

	// Topic name displayed on the details page
	// Note: This field may return null, indicating that no valid values can be obtained.
	ShowTopicName *string `json:"ShowTopicName,omitnil,omitempty" name:"ShowTopicName"`

	// Total number of consumer group consumption lists.
	MessageTracksCount *int64 `json:"MessageTracksCount,omitnil,omitempty" name:"MessageTracksCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQMsgResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQMsgResponseParams `json:"Response"`
}

func (r *DescribeRocketMQMsgResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQMsgResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQMsgTraceRequestParams struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic. When the system queries RocketMQ dead letters, the value is groupId.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Consumer Group and Subscription
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// The value is true when querying dead letters.
	//
	// Deprecated: QueryDLQMsg is deprecated.
	QueryDLQMsg *bool `json:"QueryDLQMsg,omitnil,omitempty" name:"QueryDLQMsg"`

	// The value is true when querying dead letters.
	QueryDeadLetterMessage *string `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`
}

type DescribeRocketMQMsgTraceRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic. When the system queries RocketMQ dead letters, the value is groupId.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Consumer Group and Subscription
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// The value is true when querying dead letters.
	QueryDLQMsg *bool `json:"QueryDLQMsg,omitnil,omitempty" name:"QueryDLQMsg"`

	// The value is true when querying dead letters.
	QueryDeadLetterMessage *string `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`
}

func (r *DescribeRocketMQMsgTraceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQMsgTraceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "MsgId")
	delete(f, "GroupName")
	delete(f, "QueryDLQMsg")
	delete(f, "QueryDeadLetterMessage")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQMsgTraceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQMsgTraceResponseParams struct {
	// Trace details list.
	Result []*TraceResult `json:"Result,omitnil,omitempty" name:"Result"`

	// Topic Name Displayed on Message Trace Page
	ShowTopicName *string `json:"ShowTopicName,omitnil,omitempty" name:"ShowTopicName"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQMsgTraceResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQMsgTraceResponseParams `json:"Response"`
}

func (r *DescribeRocketMQMsgTraceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQMsgTraceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQNamespacesRequestParams struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The max number of returned results.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search by name.
	NameKeyword *string `json:"NameKeyword,omitnil,omitempty" name:"NameKeyword"`
}

type DescribeRocketMQNamespacesRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The max number of returned results.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Search by name.
	NameKeyword *string `json:"NameKeyword,omitnil,omitempty" name:"NameKeyword"`
}

func (r *DescribeRocketMQNamespacesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQNamespacesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "NameKeyword")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQNamespacesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQNamespacesResponseParams struct {
	// List of namespaces
	Namespaces []*RocketMQNamespace `json:"Namespaces,omitnil,omitempty" name:"Namespaces"`

	// The total number of returned results.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQNamespacesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQNamespacesResponseParams `json:"Response"`
}

func (r *DescribeRocketMQNamespacesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQNamespacesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQProducersRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Pagination Offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination Limit
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Query filter criteria list. supports the following filter parameters:.
	// 
	// -ClientId: specifies the producer client ID.
	// -ClientIp: specifies the producer client IP.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeRocketMQProducersRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Pagination Offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination Limit
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Query filter criteria list. supports the following filter parameters:.
	// 
	// -ClientId: specifies the producer client ID.
	// -ClientIp: specifies the producer client IP.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeRocketMQProducersRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQProducersRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "Topic")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQProducersRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQProducersResponseParams struct {
	// Producer client list.
	Producers []*ProducerInfo `json:"Producers,omitnil,omitempty" name:"Producers"`

	// Total number.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQProducersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQProducersResponseParams `json:"Response"`
}

func (r *DescribeRocketMQProducersResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQProducersResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQPublicAccessMonitorDataRequestParams struct {
	// Exclusive Edition cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Metric name. Only single-metric pulling is supported. Currently supported metrics: ClientIntraffic and ClientOuttraffic.
	MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"`

	// Start time.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, current time by default.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Monitoring statistical period, such as 60 (in seconds). The default value is 300.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`
}

type DescribeRocketMQPublicAccessMonitorDataRequest struct {
	*tchttp.BaseRequest
	
	// Exclusive Edition cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Metric name. Only single-metric pulling is supported. Currently supported metrics: ClientIntraffic and ClientOuttraffic.
	MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"`

	// Start time.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, current time by default.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Monitoring statistical period, such as 60 (in seconds). The default value is 300.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`
}

func (r *DescribeRocketMQPublicAccessMonitorDataRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQPublicAccessMonitorDataRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "MetricName")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Period")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQPublicAccessMonitorDataRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQPublicAccessMonitorDataResponseParams struct {
	// Metric name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"`

	// Monitoring statistical period, such as 60 (in seconds). The default value is 300.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// Start time, for example, 2018-09-22T19:51:23+08:00.
	// Note: This field may return null, indicating that no valid values can be obtained.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, such as 2018-09-22T20:51:23+08:00. The default value is the current time.
	// Note: This field may return null, indicating that no valid values can be obtained.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Data point array
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataPoints []*RocketMQDataPoint `json:"DataPoints,omitnil,omitempty" name:"DataPoints"`

	// Returned information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Msg *string `json:"Msg,omitnil,omitempty" name:"Msg"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQPublicAccessMonitorDataResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQPublicAccessMonitorDataResponseParams `json:"Response"`
}

func (r *DescribeRocketMQPublicAccessMonitorDataResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQPublicAccessMonitorDataResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQPublicAccessPointRequestParams struct {
	// Cluster ID. Currently, the system only supports dedicated clusters.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type DescribeRocketMQPublicAccessPointRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID. Currently, the system only supports dedicated clusters.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *DescribeRocketMQPublicAccessPointRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQPublicAccessPointRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQPublicAccessPointRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQPublicAccessPointResponseParams struct {
	// Indicates the public network access point status.
	// 0. enabled.
	// Closed.
	// 2: enabled.
	// Disabling.
	// Modifying.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Payment status.
	// 0 or unknown.
	// Normal.
	// Indicates arrears.
	PayStatus *int64 `json:"PayStatus,omitnil,omitempty" name:"PayStatus"`

	// Endpoint address.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessUrl *string `json:"AccessUrl,omitnil,omitempty" name:"AccessUrl"`

	// Security Access Rule List
	// Note: This field may return null, indicating that no valid values can be obtained.
	Rules []*PublicAccessRule `json:"Rules,omitnil,omitempty" name:"Rules"`

	// Bandwidth
	// Note: This field may return null, indicating that no valid values can be obtained.
	Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Payment mode
	// Note: This field may return null, indicating that no valid values can be obtained.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Whether public network is billed by traffic.
	// Note: This field may return null, indicating that no valid values can be obtained.
	BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQPublicAccessPointResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQPublicAccessPointResponseParams `json:"Response"`
}

func (r *DescribeRocketMQPublicAccessPointResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQPublicAccessPointResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQRolesRequestParams struct {
	// Starting index. Default is 0 if left empty.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns, default to 10 if not specified, maximum value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Role name, fuzzy search
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Filters RoleName by role name for precise query. Type: string. Required: no.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeRocketMQRolesRequest struct {
	*tchttp.BaseRequest
	
	// Starting index. Default is 0 if left empty.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns, default to 10 if not specified, maximum value: 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Role name, fuzzy search
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Filters RoleName by role name for precise query. Type: string. Required: no.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeRocketMQRolesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQRolesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "ClusterId")
	delete(f, "RoleName")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQRolesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQRolesResponseParams struct {
	// Record count.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Role array.
	RoleSets []*Role `json:"RoleSets,omitnil,omitempty" name:"RoleSets"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQRolesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQRolesResponseParams `json:"Response"`
}

func (r *DescribeRocketMQRolesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQRolesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopUsagesRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Metric name. support the following:.
	// consumeLag. specifies the consumer group backlog count.
	// deadLetterCount. specifies the dead letter count.
	// Topic production rate.
	// Topic consumption rate. specifies the Topic consumption rate.
	// topicStorageSize. specifies the Topic storage space.
	// Topic API call count.
	MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"`

	// Sort quantity. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeRocketMQTopUsagesRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Metric name. support the following:.
	// consumeLag. specifies the consumer group backlog count.
	// deadLetterCount. specifies the dead letter count.
	// Topic production rate.
	// Topic consumption rate. specifies the Topic consumption rate.
	// topicStorageSize. specifies the Topic storage space.
	// Topic API call count.
	MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"`

	// Sort quantity. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeRocketMQTopUsagesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopUsagesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "MetricName")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQTopUsagesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopUsagesResponseParams struct {
	// Metric Value List
	Values []*int64 `json:"Values,omitnil,omitempty" name:"Values"`

	// Dimension combinations corresponding to metric value. this API has the following dimensions:.
	// tenant,namespace,group,topic
	Dimensions []*DimensionInstance `json:"Dimensions,omitnil,omitempty" name:"Dimensions"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQTopUsagesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQTopUsagesResponseParams `json:"Response"`
}

func (r *DescribeRocketMQTopUsagesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopUsagesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicMsgsRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name, which is groupId when the system queries dead letters.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Start time.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Message key
	MsgKey *string `json:"MsgKey,omitnil,omitempty" name:"MsgKey"`

	// Query Offset
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Query Quotas
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Mark a pagination transaction.
	TaskRequestId *string `json:"TaskRequestId,omitnil,omitempty" name:"TaskRequestId"`

	// This value is true when the system queries dead letters, and is only valid for RocketMQ.
	//
	// Deprecated: QueryDlqMsg is deprecated.
	QueryDlqMsg *bool `json:"QueryDlqMsg,omitnil,omitempty" name:"QueryDlqMsg"`

	// Query the last N messages. The value of N cannot exceed 1024. By default, -1 indicates other query conditions.
	NumOfLatestMsg *int64 `json:"NumOfLatestMsg,omitnil,omitempty" name:"NumOfLatestMsg"`

	// Tag expression.
	Tag *string `json:"Tag,omitnil,omitempty" name:"Tag"`

	// This value is true when the system queries dead letters, and is only valid for RocketMQ.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`
}

type DescribeRocketMQTopicMsgsRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name, which is groupId when the system queries dead letters.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Start time.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Message key
	MsgKey *string `json:"MsgKey,omitnil,omitempty" name:"MsgKey"`

	// Query Offset
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Query Quotas
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Mark a pagination transaction.
	TaskRequestId *string `json:"TaskRequestId,omitnil,omitempty" name:"TaskRequestId"`

	// This value is true when the system queries dead letters, and is only valid for RocketMQ.
	QueryDlqMsg *bool `json:"QueryDlqMsg,omitnil,omitempty" name:"QueryDlqMsg"`

	// Query the last N messages. The value of N cannot exceed 1024. By default, -1 indicates other query conditions.
	NumOfLatestMsg *int64 `json:"NumOfLatestMsg,omitnil,omitempty" name:"NumOfLatestMsg"`

	// Tag expression.
	Tag *string `json:"Tag,omitnil,omitempty" name:"Tag"`

	// This value is true when the system queries dead letters, and is only valid for RocketMQ.
	QueryDeadLetterMessage *bool `json:"QueryDeadLetterMessage,omitnil,omitempty" name:"QueryDeadLetterMessage"`
}

func (r *DescribeRocketMQTopicMsgsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicMsgsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "MsgId")
	delete(f, "MsgKey")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "TaskRequestId")
	delete(f, "QueryDlqMsg")
	delete(f, "NumOfLatestMsg")
	delete(f, "Tag")
	delete(f, "QueryDeadLetterMessage")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQTopicMsgsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicMsgsResponseParams struct {
	// Total number.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Message List
	TopicMsgLogSets []*RocketMQMsgLog `json:"TopicMsgLogSets,omitnil,omitempty" name:"TopicMsgLogSets"`

	// Mark a pagination transaction.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskRequestId *string `json:"TaskRequestId,omitnil,omitempty" name:"TaskRequestId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQTopicMsgsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQTopicMsgsResponseParams `json:"Response"`
}

func (r *DescribeRocketMQTopicMsgsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicMsgsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Consumer group name.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Subscription list pagination parameter Offset.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Subscription list pagination parameter Limit.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeRocketMQTopicRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Consumer group name.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Subscription list pagination parameter Offset.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Subscription list pagination parameter Limit.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeRocketMQTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "TopicName")
	delete(f, "ConsumerGroup")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicResponseParams struct {
	// Topic details.
	Topic *RocketMQTopic `json:"Topic,omitnil,omitempty" name:"Topic"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQTopicResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQTopicResponseParams `json:"Response"`
}

func (r *DescribeRocketMQTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicStatsRequestParams struct {
	// Instance ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
}

type DescribeRocketMQTopicStatsRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
}

func (r *DescribeRocketMQTopicStatsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicStatsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "TopicName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQTopicStatsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicStatsResponseParams struct {
	// Production details list.
	TopicStatsList []*TopicStats `json:"TopicStatsList,omitnil,omitempty" name:"TopicStatsList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQTopicStatsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQTopicStatsResponseParams `json:"Response"`
}

func (r *DescribeRocketMQTopicStatsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicStatsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicsByGroupRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Specifies the namespace name.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Consumer group name.
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Limit of Items
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeRocketMQTopicsByGroupRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Specifies the namespace name.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Consumer group name.
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Limit of Items
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeRocketMQTopicsByGroupRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicsByGroupRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "GroupId")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQTopicsByGroupRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicsByGroupResponseParams struct {
	// Total number of entries
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Topic list.
	Topics []*string `json:"Topics,omitnil,omitempty" name:"Topics"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQTopicsByGroupResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQTopicsByGroupResponseParams `json:"Response"`
}

func (r *DescribeRocketMQTopicsByGroupResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicsByGroupResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicsRequestParams struct {
	// Offset for query.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Query limit.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Filter by topic type. Valid values: `Normal`, `GlobalOrder`, `PartitionedOrder`, `Transaction`.
	FilterType []*string `json:"FilterType,omitnil,omitempty" name:"FilterType"`

	// Search by topic name. Fuzzy query is supported.
	FilterName *string `json:"FilterName,omitnil,omitempty" name:"FilterName"`

	// Filters by subscription consumer group name.
	FilterGroup *string `json:"FilterGroup,omitnil,omitempty" name:"FilterGroup"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`
}

type DescribeRocketMQTopicsRequest struct {
	*tchttp.BaseRequest
	
	// Offset for query.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Query limit.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Filter by topic type. Valid values: `Normal`, `GlobalOrder`, `PartitionedOrder`, `Transaction`.
	FilterType []*string `json:"FilterType,omitnil,omitempty" name:"FilterType"`

	// Search by topic name. Fuzzy query is supported.
	FilterName *string `json:"FilterName,omitnil,omitempty" name:"FilterName"`

	// Filters by subscription consumer group name.
	FilterGroup *string `json:"FilterGroup,omitnil,omitempty" name:"FilterGroup"`

	// Tag filter
	TagFilters []*TagFilter `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`
}

func (r *DescribeRocketMQTopicsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "FilterType")
	delete(f, "FilterName")
	delete(f, "FilterGroup")
	delete(f, "TagFilters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQTopicsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQTopicsResponseParams struct {
	// The total number of query records.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of topic information
	Topics []*RocketMQTopic `json:"Topics,omitnil,omitempty" name:"Topics"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQTopicsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQTopicsResponseParams `json:"Response"`
}

func (r *DescribeRocketMQTopicsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQTopicsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQVipInstanceDetailRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribeRocketMQVipInstanceDetailRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribeRocketMQVipInstanceDetailRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQVipInstanceDetailRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQVipInstanceDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQVipInstanceDetailResponseParams struct {
	// Cluster information
	ClusterInfo *RocketMQClusterInfo `json:"ClusterInfo,omitnil,omitempty" name:"ClusterInfo"`

	// Cluster configuration
	InstanceConfig *RocketMQInstanceConfig `json:"InstanceConfig,omitnil,omitempty" name:"InstanceConfig"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQVipInstanceDetailResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQVipInstanceDetailResponseParams `json:"Response"`
}

func (r *DescribeRocketMQVipInstanceDetailResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQVipInstanceDetailResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQVipInstancesRequestParams struct {
	// Query condition filter. supported query conditions are as follows:.
	// Instance ids - specifies the instance ids.
	// Instance name - specifies the instance name.
	// Status - specifies the instance status.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of queried items, which defaults to 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Start offset for query
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeRocketMQVipInstancesRequest struct {
	*tchttp.BaseRequest
	
	// Query condition filter. supported query conditions are as follows:.
	// Instance ids - specifies the instance ids.
	// Instance name - specifies the instance name.
	// Status - specifies the instance status.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of queried items, which defaults to 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Start offset for query
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeRocketMQVipInstancesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQVipInstancesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQVipInstancesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRocketMQVipInstancesResponseParams struct {
	// The total number of unpaginated items
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Instance information list
	Instances []*RocketMQVipInstance `json:"Instances,omitnil,omitempty" name:"Instances"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRocketMQVipInstancesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRocketMQVipInstancesResponseParams `json:"Response"`
}

func (r *DescribeRocketMQVipInstancesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRocketMQVipInstancesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRolesRequestParams struct {
	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Fuzzy query by role name
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Offset. If this parameter is left empty, 0 will be used by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of results to be returned. If this parameter is left empty, 10 will be used by default. The maximum value is 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// * RoleName
	// Filter by role name for exact query.
	// Type: String
	// Required: no
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeRolesRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Fuzzy query by role name
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Offset. If this parameter is left empty, 0 will be used by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of results to be returned. If this parameter is left empty, 10 will be used by default. The maximum value is 20.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// * RoleName
	// Filter by role name for exact query.
	// Type: String
	// Required: no
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeRolesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRolesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "RoleName")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRolesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRolesResponseParams struct {
	// Number of records.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Array of roles.
	RoleSets []*Role `json:"RoleSets,omitnil,omitempty" name:"RoleSets"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRolesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRolesResponseParams `json:"Response"`
}

func (r *DescribeRolesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRolesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSubscriptionsRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Offset, which defaults to 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy match by subscriber name.
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Data filter.
	Filters []*FilterSubscription `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeSubscriptionsRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Offset, which defaults to 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy match by subscriber name.
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Data filter.
	Filters []*FilterSubscription `json:"Filters,omitnil,omitempty" name:"Filters"`
}

func (r *DescribeSubscriptionsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSubscriptionsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "ClusterId")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "SubscriptionName")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSubscriptionsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSubscriptionsResponseParams struct {
	// Array of subscriber sets.
	SubscriptionSets []*Subscription `json:"SubscriptionSets,omitnil,omitempty" name:"SubscriptionSets"`

	// The total number of returned results.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeSubscriptionsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSubscriptionsResponseParams `json:"Response"`
}

func (r *DescribeSubscriptionsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSubscriptionsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicMsgsRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Start time.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Starting index. Default is 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns, default to 10 if not specified, maximum value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type DescribeTopicMsgsRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Start time.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Starting index. Default is 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns, default to 10 if not specified, maximum value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *DescribeTopicMsgsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicMsgsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "MsgId")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTopicMsgsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicMsgsResponseParams struct {
	// Total record count.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Message log list.
	TopicMsgLogSets []*MsgLog `json:"TopicMsgLogSets,omitnil,omitempty" name:"TopicMsgLogSets"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTopicMsgsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTopicMsgsResponseParams `json:"Response"`
}

func (r *DescribeTopicMsgsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicMsgsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicsRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Pulsar cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Fuzzy match by topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Offset, which defaults to 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Topic type description:
	// 0: Non-persistent and non-partitioned topic;
	// 1: Non-persistent and partitioned topic;
	// 2: Persistent and non-partitioned topic;
	// 3: Persistent and partitioned topic.
	TopicType *uint64 `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// * TopicName
	// Query by topic name for exact search.
	// Type: String
	// Required: No
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Topic creator:
	// 1: User
	// 2: System
	TopicCreator *uint64 `json:"TopicCreator,omitnil,omitempty" name:"TopicCreator"`
}

type DescribeTopicsRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Pulsar cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Fuzzy match by topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Offset, which defaults to 0 if left empty.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The number of results to be returned, which defaults to 10 if left empty. The maximum value is 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Topic type description:
	// 0: Non-persistent and non-partitioned topic;
	// 1: Non-persistent and partitioned topic;
	// 2: Persistent and non-partitioned topic;
	// 3: Persistent and partitioned topic.
	TopicType *uint64 `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// * TopicName
	// Query by topic name for exact search.
	// Type: String
	// Required: No
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Topic creator:
	// 1: User
	// 2: System
	TopicCreator *uint64 `json:"TopicCreator,omitnil,omitempty" name:"TopicCreator"`
}

func (r *DescribeTopicsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "ClusterId")
	delete(f, "TopicName")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "TopicType")
	delete(f, "Filters")
	delete(f, "TopicCreator")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTopicsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTopicsResponseParams struct {
	// Array of topic sets.
	TopicSets []*Topic `json:"TopicSets,omitnil,omitempty" name:"TopicSets"`

	// The number of topics.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTopicsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTopicsResponseParams `json:"Response"`
}

func (r *DescribeTopicsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTopicsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type DetailedRolePerm struct {
	// Resources corresponding to permissions.
	Resource *string `json:"Resource,omitnil,omitempty" name:"Resource"`

	// Whether to enable production permission
	PermWrite *bool `json:"PermWrite,omitnil,omitempty" name:"PermWrite"`

	// Whether to enable consumption permission
	PermRead *bool `json:"PermRead,omitnil,omitempty" name:"PermRead"`

	// Authorized resource type (Topic: topic; Group: consumer group).
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Resource remarks.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

type DimensionInstance struct {
	// Dimension Combination of Instance
	// Note: This field may return null, indicating that no valid values can be obtained.
	Dimensions []*DimensionOpt `json:"Dimensions,omitnil,omitempty" name:"Dimensions"`
}

type DimensionOpt struct {
	// Queried dimension name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Queried Dimension Value
	// Note: This field may return null, indicating that no valid values can be obtained.
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`
}

type Environment struct {
	// Namespace name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Description.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Retention period for unconsumed messages in seconds. Maximum value: 1,296,000 seconds (15 days).
	MsgTTL *int64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Last modified.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Namespace ID.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Namespace name.
	NamespaceName *string `json:"NamespaceName,omitnil,omitempty" name:"NamespaceName"`

	// The number of topics.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicNum *int64 `json:"TopicNum,omitnil,omitempty" name:"TopicNum"`

	// Message retention policy.
	// Note: This field may return null, indicating that no valid values can be obtained.
	RetentionPolicy *RetentionPolicy `json:"RetentionPolicy,omitnil,omitempty" name:"RetentionPolicy"`

	// Whether to enable "Auto-Create Subscription"
	// Note: This field may return null, indicating that no valid values can be obtained.
	AutoSubscriptionCreation *bool `json:"AutoSubscriptionCreation,omitnil,omitempty" name:"AutoSubscriptionCreation"`
}

type EnvironmentRole struct {
	// Environment (namespace).
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Permissions, which is a non-empty string array of `produce` and `consume` at the most.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Role description.
	RoleDescribe *string `json:"RoleDescribe,omitnil,omitempty" name:"RoleDescribe"`

	// Creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Update time.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`
}

type EnvironmentRoleSet struct {
	// The IDs of the bound namespaces cannot be delicate and the namespaces must contain resources
	// Note: This field may return null, indicating that no valid values can be obtained.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Permissions to be bound to a namespace. Enumerated values: `consume`, `produce`, and `consume, produce`. This parameter cannot be left empty.
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`
}

type ExchangeQuota struct {

	MaxExchange *int64 `json:"MaxExchange,omitnil,omitempty" name:"MaxExchange"`

	// Number of created exchanges.
	UsedExchange *int64 `json:"UsedExchange,omitnil,omitempty" name:"UsedExchange"`
}

// Predefined struct for user
type ExportRocketMQMessageDetailRequestParams struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Application namespace.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	// If it is a dead letter message, isDlqMsg=true.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Whether to Includes Message Body
	IncludeMsgBody *bool `json:"IncludeMsgBody,omitnil,omitempty" name:"IncludeMsgBody"`

	// Whether It a Dead Letter Message
	DeadLetterMsg *bool `json:"DeadLetterMsg,omitnil,omitempty" name:"DeadLetterMsg"`
}

type ExportRocketMQMessageDetailRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Application namespace.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	// If it is a dead letter message, isDlqMsg=true.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Whether to Includes Message Body
	IncludeMsgBody *bool `json:"IncludeMsgBody,omitnil,omitempty" name:"IncludeMsgBody"`

	// Whether It a Dead Letter Message
	DeadLetterMsg *bool `json:"DeadLetterMsg,omitnil,omitempty" name:"DeadLetterMsg"`
}

func (r *ExportRocketMQMessageDetailRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ExportRocketMQMessageDetailRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "MsgId")
	delete(f, "IncludeMsgBody")
	delete(f, "DeadLetterMsg")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ExportRocketMQMessageDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ExportRocketMQMessageDetailResponseParams struct {
	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Message Generation Timestamp
	// Note: This field may return null, indicating that no valid values can be obtained.
	BornTimestamp *int64 `json:"BornTimestamp,omitnil,omitempty" name:"BornTimestamp"`

	// Message Storage Timestamp
	// Note: This field may return null, indicating that no valid values can be obtained.
	StoreTimestamp *int64 `json:"StoreTimestamp,omitnil,omitempty" name:"StoreTimestamp"`

	// Message Production Client Address
	// Note: This field may return null, indicating that no valid values can be obtained.
	BornHost *string `json:"BornHost,omitnil,omitempty" name:"BornHost"`

	// Message Tag
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgTag *string `json:"MsgTag,omitnil,omitempty" name:"MsgTag"`

	// Message key
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgKey *string `json:"MsgKey,omitnil,omitempty" name:"MsgKey"`

	// Message Attributes
	// Note: This field may return null, indicating that no valid values can be obtained.
	Properties *string `json:"Properties,omitnil,omitempty" name:"Properties"`

	// Message Retry Count
	// Note: This field may return null, indicating that no valid values can be obtained.
	ReConsumeTimes *uint64 `json:"ReConsumeTimes,omitnil,omitempty" name:"ReConsumeTimes"`

	// Base64 Encoded String
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgBody *string `json:"MsgBody,omitnil,omitempty" name:"MsgBody"`

	// CRC32 Code of Message Content
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgBodyCRC *int64 `json:"MsgBodyCRC,omitnil,omitempty" name:"MsgBodyCRC"`

	// Specifies the message body size (unit K).
	// Does not return messages when above 2048.
	MsgBodySize *uint64 `json:"MsgBodySize,omitnil,omitempty" name:"MsgBodySize"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ExportRocketMQMessageDetailResponse struct {
	*tchttp.BaseResponse
	Response *ExportRocketMQMessageDetailResponseParams `json:"Response"`
}

func (r *ExportRocketMQMessageDetailResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ExportRocketMQMessageDetailResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type Filter struct {
	// Filter parameter name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Value
	Values []*string `json:"Values,omitnil,omitempty" name:"Values"`
}

type FilterSubscription struct {
	// Whether to only display subscriptions that include real consumers.
	ConsumerHasCount *bool `json:"ConsumerHasCount,omitnil,omitempty" name:"ConsumerHasCount"`

	// Whether to only display subscriptions with heaped messages.
	ConsumerHasBacklog *bool `json:"ConsumerHasBacklog,omitnil,omitempty" name:"ConsumerHasBacklog"`

	// Whether to only display subscriptions with messages discarded after expiration.
	ConsumerHasExpired *bool `json:"ConsumerHasExpired,omitnil,omitempty" name:"ConsumerHasExpired"`

	// Filter by subscription name for exact query.
	SubscriptionNames []*string `json:"SubscriptionNames,omitnil,omitempty" name:"SubscriptionNames"`
}

type InstanceNodeDistribution struct {
	// AZ
	ZoneName *string `json:"ZoneName,omitnil,omitempty" name:"ZoneName"`

	// AZ ID
	ZoneId *string `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Number of nodes
	NodeCount *uint64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// This flag is true if there is a scheduling task with no switchback AZs.
	NodePermWipeFlag *bool `json:"NodePermWipeFlag,omitnil,omitempty" name:"NodePermWipeFlag"`

	// Availability zone status
	// Note: This field may return null, indicating that no valid values can be obtained.
	ZoneStatus *string `json:"ZoneStatus,omitnil,omitempty" name:"ZoneStatus"`
}

// Predefined struct for user
type ModifyClusterRequestParams struct {
	// ID of the Pulsar cluster to be updated.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Updated cluster name.
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Description information. length limit is 128 bytes.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Enables public network access, which can only be `true`.
	PublicAccessEnabled *bool `json:"PublicAccessEnabled,omitnil,omitempty" name:"PublicAccessEnabled"`
}

type ModifyClusterRequest struct {
	*tchttp.BaseRequest
	
	// ID of the Pulsar cluster to be updated.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Updated cluster name.
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Description information. length limit is 128 bytes.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Enables public network access, which can only be `true`.
	PublicAccessEnabled *bool `json:"PublicAccessEnabled,omitnil,omitempty" name:"PublicAccessEnabled"`
}

func (r *ModifyClusterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "ClusterName")
	delete(f, "Remark")
	delete(f, "PublicAccessEnabled")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyClusterResponseParams struct {
	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyClusterResponse struct {
	*tchttp.BaseResponse
	Response *ModifyClusterResponseParams `json:"Response"`
}

func (r *ModifyClusterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyClusterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCmqQueueAttributeRequestParams struct {
	// Queue name, which must be unique under the same account in the same region. A queue name is a string of up to 64 characters, starting with a letter, and the remaining part can include letters, digits, and hyphens (-).
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Maximum number of heaped messages. The value range is 1,000,000–10,000,000 during the beta test and can be 1,000,000–1,000,000,000 after the product is officially released. The default value is 10,000,000 during the beta test and will be 100,000,000 after the product is officially released.
	MaxMsgHeapNum *uint64 `json:"MaxMsgHeapNum,omitnil,omitempty" name:"MaxMsgHeapNum"`

	// Long polling wait time for message reception. Value range: 0–30 seconds. Default value: 0.
	PollingWaitSeconds *uint64 `json:"PollingWaitSeconds,omitnil,omitempty" name:"PollingWaitSeconds"`

	// Message visibility timeout period. Value range: 1–43200 seconds (i.e., 12 hours). Default value: 30.
	VisibilityTimeout *uint64 `json:"VisibilityTimeout,omitnil,omitempty" name:"VisibilityTimeout"`

	// Max message size, which defaults to 1,024 KB for the queue of TDMQ for CMQ and cannot be modified.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// The max period during which a message is retained before it is automatically acknowledged. Value range: 30-43,200 seconds (30 seconds to 12 hours). Default value: 3600 seconds (1 hour).
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Rewindable time of messages in the queue. Value range: 0-1,296,000s (if message rewind is enabled). The value “0” indicates that message rewind is not enabled.
	RewindSeconds *uint64 `json:"RewindSeconds,omitnil,omitempty" name:"RewindSeconds"`

	// First query time
	FirstQueryInterval *uint64 `json:"FirstQueryInterval,omitnil,omitempty" name:"FirstQueryInterval"`

	// Maximum number of queries
	MaxQueryCount *uint64 `json:"MaxQueryCount,omitnil,omitempty" name:"MaxQueryCount"`

	// Dead letter queue name
	DeadLetterQueueName *string `json:"DeadLetterQueueName,omitnil,omitempty" name:"DeadLetterQueueName"`

	// Specifies the essential parameter when policy is 1. maximum unconsumed expiration time. value range: 300-43200 in seconds, must be less than the maximum message retention time MsgRetentionSeconds.
	MaxTimeToLive *uint64 `json:"MaxTimeToLive,omitnil,omitempty" name:"MaxTimeToLive"`

	// Maximum number of receipts
	MaxReceiveCount *uint64 `json:"MaxReceiveCount,omitnil,omitempty" name:"MaxReceiveCount"`

	// Dead letter queue policy
	Policy *uint64 `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Whether to enable message trace. true: yes; false: no. If this field is left empty, the feature will not be enabled.
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`

	// Whether to enable transaction. 1: yes; 0: no
	Transaction *uint64 `json:"Transaction,omitnil,omitempty" name:"Transaction"`

	// Queue storage space configured for message rewind. Value range: 10,240-512,000 MB (if message rewind is enabled). The value “0” indicates that message rewind is not enabled.
	RetentionSizeInMB *uint64 `json:"RetentionSizeInMB,omitnil,omitempty" name:"RetentionSizeInMB"`
}

type ModifyCmqQueueAttributeRequest struct {
	*tchttp.BaseRequest
	
	// Queue name, which must be unique under the same account in the same region. A queue name is a string of up to 64 characters, starting with a letter, and the remaining part can include letters, digits, and hyphens (-).
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Maximum number of heaped messages. The value range is 1,000,000–10,000,000 during the beta test and can be 1,000,000–1,000,000,000 after the product is officially released. The default value is 10,000,000 during the beta test and will be 100,000,000 after the product is officially released.
	MaxMsgHeapNum *uint64 `json:"MaxMsgHeapNum,omitnil,omitempty" name:"MaxMsgHeapNum"`

	// Long polling wait time for message reception. Value range: 0–30 seconds. Default value: 0.
	PollingWaitSeconds *uint64 `json:"PollingWaitSeconds,omitnil,omitempty" name:"PollingWaitSeconds"`

	// Message visibility timeout period. Value range: 1–43200 seconds (i.e., 12 hours). Default value: 30.
	VisibilityTimeout *uint64 `json:"VisibilityTimeout,omitnil,omitempty" name:"VisibilityTimeout"`

	// Max message size, which defaults to 1,024 KB for the queue of TDMQ for CMQ and cannot be modified.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// The max period during which a message is retained before it is automatically acknowledged. Value range: 30-43,200 seconds (30 seconds to 12 hours). Default value: 3600 seconds (1 hour).
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Rewindable time of messages in the queue. Value range: 0-1,296,000s (if message rewind is enabled). The value “0” indicates that message rewind is not enabled.
	RewindSeconds *uint64 `json:"RewindSeconds,omitnil,omitempty" name:"RewindSeconds"`

	// First query time
	FirstQueryInterval *uint64 `json:"FirstQueryInterval,omitnil,omitempty" name:"FirstQueryInterval"`

	// Maximum number of queries
	MaxQueryCount *uint64 `json:"MaxQueryCount,omitnil,omitempty" name:"MaxQueryCount"`

	// Dead letter queue name
	DeadLetterQueueName *string `json:"DeadLetterQueueName,omitnil,omitempty" name:"DeadLetterQueueName"`

	// Specifies the essential parameter when policy is 1. maximum unconsumed expiration time. value range: 300-43200 in seconds, must be less than the maximum message retention time MsgRetentionSeconds.
	MaxTimeToLive *uint64 `json:"MaxTimeToLive,omitnil,omitempty" name:"MaxTimeToLive"`

	// Maximum number of receipts
	MaxReceiveCount *uint64 `json:"MaxReceiveCount,omitnil,omitempty" name:"MaxReceiveCount"`

	// Dead letter queue policy
	Policy *uint64 `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Whether to enable message trace. true: yes; false: no. If this field is left empty, the feature will not be enabled.
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`

	// Whether to enable transaction. 1: yes; 0: no
	Transaction *uint64 `json:"Transaction,omitnil,omitempty" name:"Transaction"`

	// Queue storage space configured for message rewind. Value range: 10,240-512,000 MB (if message rewind is enabled). The value “0” indicates that message rewind is not enabled.
	RetentionSizeInMB *uint64 `json:"RetentionSizeInMB,omitnil,omitempty" name:"RetentionSizeInMB"`
}

func (r *ModifyCmqQueueAttributeRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCmqQueueAttributeRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "QueueName")
	delete(f, "MaxMsgHeapNum")
	delete(f, "PollingWaitSeconds")
	delete(f, "VisibilityTimeout")
	delete(f, "MaxMsgSize")
	delete(f, "MsgRetentionSeconds")
	delete(f, "RewindSeconds")
	delete(f, "FirstQueryInterval")
	delete(f, "MaxQueryCount")
	delete(f, "DeadLetterQueueName")
	delete(f, "MaxTimeToLive")
	delete(f, "MaxReceiveCount")
	delete(f, "Policy")
	delete(f, "Trace")
	delete(f, "Transaction")
	delete(f, "RetentionSizeInMB")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyCmqQueueAttributeRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCmqQueueAttributeResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyCmqQueueAttributeResponse struct {
	*tchttp.BaseResponse
	Response *ModifyCmqQueueAttributeResponseParams `json:"Response"`
}

func (r *ModifyCmqQueueAttributeResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCmqQueueAttributeResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCmqSubscriptionAttributeRequestParams struct {
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscription name, which must be unique under the same account and same topic in a single region. the name is a string of no more than 64 characters, beginning with a letter, and the remaining part may contain letters, numbers, and hyphens (-).
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// CMQ push server retry policy in case an error occurs while pushing a message to the endpoint. Valid values:
	// (1) BACKOFF_RETRY: backoff retry, which is to retry at a fixed interval, discard the message after a certain number of retries, and continue to push the next message.
	// (2) EXPONENTIAL_DECAY_RETRY: exponential decay retry, which is to retry at an exponentially increasing interval, such as 1s, 2s, 4s, 8s, and so on. As a message can be retained in a topic for one day, failed messages will be discarded at most after one day of retry. Default value: EXPONENTIAL_DECAY_RETRY.
	NotifyStrategy *string `json:"NotifyStrategy,omitnil,omitempty" name:"NotifyStrategy"`

	// Push content format. Valid values: 1. JSON; 2. SIMPLIFIED, i.e., the raw format. If `Protocol` is `queue`, this value must be `SIMPLIFIED`. If `Protocol` is `HTTP`, both values are acceptable, and the default value is `JSON`.
	NotifyContentFormat *string `json:"NotifyContentFormat,omitnil,omitempty" name:"NotifyContentFormat"`

	// Message body tag (used for message filtering). The number of tags cannot exceed 5, and each tag can contain up to 16 characters. It is used in conjunction with the `MsgTag` parameter of `(Batch)PublishMessage`. Rules: 1. If `FilterTag` is not configured, no matter whether `MsgTag` is configured, the subscription will receive all messages published to the topic; 2. If the array of `FilterTag` values has a value, only when at least one of the values in the array also exists in the array of `MsgTag` values (i.e., `FilterTag` and `MsgTag` have an intersection) can the subscription receive messages published to the topic; 3. If the array of `FilterTag` values has a value, but `MsgTag` is not configured, then no message published to the topic will be received, which can be considered as a special case of rule 2 as `FilterTag` and `MsgTag` do not intersect in this case. The overall design idea of rules is based on the intention of the subscriber.
	FilterTags []*string `json:"FilterTags,omitnil,omitempty" name:"FilterTags"`

	// The number of `BindingKey` cannot exceed 5, and the length of each `BindingKey` cannot exceed 64 bytes. This field indicates the filtering policy for subscribing to and receiving messages. Each `BindingKey` includes up to 15 dots (namely up to 16 segments).
	BindingKey []*string `json:"BindingKey,omitnil,omitempty" name:"BindingKey"`
}

type ModifyCmqSubscriptionAttributeRequest struct {
	*tchttp.BaseRequest
	
	// Topic name, which must be unique under the same account in a single region. The name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscription name, which must be unique under the same account and same topic in a single region. the name is a string of no more than 64 characters, beginning with a letter, and the remaining part may contain letters, numbers, and hyphens (-).
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// CMQ push server retry policy in case an error occurs while pushing a message to the endpoint. Valid values:
	// (1) BACKOFF_RETRY: backoff retry, which is to retry at a fixed interval, discard the message after a certain number of retries, and continue to push the next message.
	// (2) EXPONENTIAL_DECAY_RETRY: exponential decay retry, which is to retry at an exponentially increasing interval, such as 1s, 2s, 4s, 8s, and so on. As a message can be retained in a topic for one day, failed messages will be discarded at most after one day of retry. Default value: EXPONENTIAL_DECAY_RETRY.
	NotifyStrategy *string `json:"NotifyStrategy,omitnil,omitempty" name:"NotifyStrategy"`

	// Push content format. Valid values: 1. JSON; 2. SIMPLIFIED, i.e., the raw format. If `Protocol` is `queue`, this value must be `SIMPLIFIED`. If `Protocol` is `HTTP`, both values are acceptable, and the default value is `JSON`.
	NotifyContentFormat *string `json:"NotifyContentFormat,omitnil,omitempty" name:"NotifyContentFormat"`

	// Message body tag (used for message filtering). The number of tags cannot exceed 5, and each tag can contain up to 16 characters. It is used in conjunction with the `MsgTag` parameter of `(Batch)PublishMessage`. Rules: 1. If `FilterTag` is not configured, no matter whether `MsgTag` is configured, the subscription will receive all messages published to the topic; 2. If the array of `FilterTag` values has a value, only when at least one of the values in the array also exists in the array of `MsgTag` values (i.e., `FilterTag` and `MsgTag` have an intersection) can the subscription receive messages published to the topic; 3. If the array of `FilterTag` values has a value, but `MsgTag` is not configured, then no message published to the topic will be received, which can be considered as a special case of rule 2 as `FilterTag` and `MsgTag` do not intersect in this case. The overall design idea of rules is based on the intention of the subscriber.
	FilterTags []*string `json:"FilterTags,omitnil,omitempty" name:"FilterTags"`

	// The number of `BindingKey` cannot exceed 5, and the length of each `BindingKey` cannot exceed 64 bytes. This field indicates the filtering policy for subscribing to and receiving messages. Each `BindingKey` includes up to 15 dots (namely up to 16 segments).
	BindingKey []*string `json:"BindingKey,omitnil,omitempty" name:"BindingKey"`
}

func (r *ModifyCmqSubscriptionAttributeRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCmqSubscriptionAttributeRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	delete(f, "SubscriptionName")
	delete(f, "NotifyStrategy")
	delete(f, "NotifyContentFormat")
	delete(f, "FilterTags")
	delete(f, "BindingKey")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyCmqSubscriptionAttributeRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCmqSubscriptionAttributeResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyCmqSubscriptionAttributeResponse struct {
	*tchttp.BaseResponse
	Response *ModifyCmqSubscriptionAttributeResponseParams `json:"Response"`
}

func (r *ModifyCmqSubscriptionAttributeResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCmqSubscriptionAttributeResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCmqTopicAttributeRequestParams struct {
	// Topic name, which must be unique under the same account in a single region. the name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Maximum message length. Value range: 1024–65536 bytes (i.e., 1–64 KB). Default value: 65536.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// Message retention period. Value range: 60–86400 seconds (i.e., 1 minute–1 day). Default value: 86400.
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Whether to enable message trace. true: yes; false: no. If this field is left empty, the feature will not be enabled.
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`
}

type ModifyCmqTopicAttributeRequest struct {
	*tchttp.BaseRequest
	
	// Topic name, which must be unique under the same account in a single region. the name is a string of no more than 64 characters, starting with a letter, and the remaining part may include letters, numbers, and hyphens (-).
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Maximum message length. Value range: 1024–65536 bytes (i.e., 1–64 KB). Default value: 65536.
	MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"`

	// Message retention period. Value range: 60–86400 seconds (i.e., 1 minute–1 day). Default value: 86400.
	MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"`

	// Whether to enable message trace. true: yes; false: no. If this field is left empty, the feature will not be enabled.
	Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"`
}

func (r *ModifyCmqTopicAttributeRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCmqTopicAttributeRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	delete(f, "MaxMsgSize")
	delete(f, "MsgRetentionSeconds")
	delete(f, "Trace")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyCmqTopicAttributeRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCmqTopicAttributeResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyCmqTopicAttributeResponse struct {
	*tchttp.BaseResponse
	Response *ModifyCmqTopicAttributeResponseParams `json:"Response"`
}

func (r *ModifyCmqTopicAttributeResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCmqTopicAttributeResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyEnvironmentAttributesRequestParams struct {
	// Namespace name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Retention period for unconsumed messages in seconds. Value range: 60s to 1,296,000s (or 15 days).
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Message retention policy
	RetentionPolicy *RetentionPolicy `json:"RetentionPolicy,omitnil,omitempty" name:"RetentionPolicy"`

	// Whether to enable "Auto-Create Subscription"
	AutoSubscriptionCreation *bool `json:"AutoSubscriptionCreation,omitnil,omitempty" name:"AutoSubscriptionCreation"`
}

type ModifyEnvironmentAttributesRequest struct {
	*tchttp.BaseRequest
	
	// Namespace name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Retention period for unconsumed messages in seconds. Value range: 60s to 1,296,000s (or 15 days).
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Message retention policy
	RetentionPolicy *RetentionPolicy `json:"RetentionPolicy,omitnil,omitempty" name:"RetentionPolicy"`

	// Whether to enable "Auto-Create Subscription"
	AutoSubscriptionCreation *bool `json:"AutoSubscriptionCreation,omitnil,omitempty" name:"AutoSubscriptionCreation"`
}

func (r *ModifyEnvironmentAttributesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyEnvironmentAttributesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "MsgTTL")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "RetentionPolicy")
	delete(f, "AutoSubscriptionCreation")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyEnvironmentAttributesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyEnvironmentAttributesResponseParams struct {
	// Namespace name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// TTL for unconsumed messages in seconds.
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Remarks (up to 128 characters).
	// Note: this field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Namespace ID
	// Note: this field may return null, indicating that no valid values can be obtained.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyEnvironmentAttributesResponse struct {
	*tchttp.BaseResponse
	Response *ModifyEnvironmentAttributesResponseParams `json:"Response"`
}

func (r *ModifyEnvironmentAttributesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyEnvironmentAttributesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyEnvironmentRoleRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Permissions, which is a non-empty string array of `produce` and `consume` at the most.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type ModifyEnvironmentRoleRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Permissions, which is a non-empty string array of `produce` and `consume` at the most.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *ModifyEnvironmentRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyEnvironmentRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "RoleName")
	delete(f, "Permissions")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyEnvironmentRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyEnvironmentRoleResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyEnvironmentRoleResponse struct {
	*tchttp.BaseResponse
	Response *ModifyEnvironmentRoleResponseParams `json:"Response"`
}

func (r *ModifyEnvironmentRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyEnvironmentRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyPublicNetworkSecurityPolicyRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Policy List
	PolicyList []*SecurityPolicy `json:"PolicyList,omitnil,omitempty" name:"PolicyList"`
}

type ModifyPublicNetworkSecurityPolicyRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Policy List
	PolicyList []*SecurityPolicy `json:"PolicyList,omitnil,omitempty" name:"PolicyList"`
}

func (r *ModifyPublicNetworkSecurityPolicyRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyPublicNetworkSecurityPolicyRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "PolicyList")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyPublicNetworkSecurityPolicyRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyPublicNetworkSecurityPolicyResponseParams struct {
	// Valid values: SUCCESS or FAILURE.
	ModifyResult *string `json:"ModifyResult,omitnil,omitempty" name:"ModifyResult"`

	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyPublicNetworkSecurityPolicyResponse struct {
	*tchttp.BaseResponse
	Response *ModifyPublicNetworkSecurityPolicyResponseParams `json:"Response"`
}

func (r *ModifyPublicNetworkSecurityPolicyResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyPublicNetworkSecurityPolicyResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRabbitMQPermissionRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. valid User names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and finding the list of users in the User and permission management tab, thereby locating the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Permission types, declare-related operations, specifies the regular expression for resource names that the user can operate on under the vhost.
	ConfigRegexp *string `json:"ConfigRegexp,omitnil,omitempty" name:"ConfigRegexp"`

	// Permission types, message write-related operations, specifies the regular expression for resource names that the user can operate on under the vhost.
	WriteRegexp *string `json:"WriteRegexp,omitnil,omitempty" name:"WriteRegexp"`

	// Permission types, message read-related operations, specifies the regular expression for resource names that the user can operate on under the vhost.
	ReadRegexp *string `json:"ReadRegexp,omitnil,omitempty" name:"ReadRegexp"`
}

type ModifyRabbitMQPermissionRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. valid InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. valid User names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and finding the list of users in the User and permission management tab, thereby locating the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Permission types, declare-related operations, specifies the regular expression for resource names that the user can operate on under the vhost.
	ConfigRegexp *string `json:"ConfigRegexp,omitnil,omitempty" name:"ConfigRegexp"`

	// Permission types, message write-related operations, specifies the regular expression for resource names that the user can operate on under the vhost.
	WriteRegexp *string `json:"WriteRegexp,omitnil,omitempty" name:"WriteRegexp"`

	// Permission types, message read-related operations, specifies the regular expression for resource names that the user can operate on under the vhost.
	ReadRegexp *string `json:"ReadRegexp,omitnil,omitempty" name:"ReadRegexp"`
}

func (r *ModifyRabbitMQPermissionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRabbitMQPermissionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "User")
	delete(f, "VirtualHost")
	delete(f, "ConfigRegexp")
	delete(f, "WriteRegexp")
	delete(f, "ReadRegexp")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRabbitMQPermissionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRabbitMQPermissionResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRabbitMQPermissionResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRabbitMQPermissionResponseParams `json:"Response"`
}

func (r *ModifyRabbitMQPermissionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRabbitMQPermissionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRabbitMQUserRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. effective User names can be found by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and locating the list of users under the User and permission management tab, thereby finding the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// Password, used when logging in. requirement: cannot be empty, 8-64 characters, must contain at least two items from lowercase letters, uppercase letters, digits, and special characters [`()~!@#$%^&*_=|{}[]:;',.?/].
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// Description. If this parameter is not passed in, it won't be modified.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// User tag, used to determine the access permission of the user for RabbitMQ Management.
	// management: ordinary console user. monitoring: administrative console user. other value: non-console user.
	Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The maximum number of connections for the user. If this parameter is not passed in, it won't be modified.
	MaxConnections *int64 `json:"MaxConnections,omitnil,omitempty" name:"MaxConnections"`

	// The maximum number of channels for the user. If this parameter is not passed in, it won't be modified.
	MaxChannels *int64 `json:"MaxChannels,omitnil,omitempty" name:"MaxChannels"`
}

type ModifyRabbitMQUserRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. effective User names can be found by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and locating the list of users under the User and permission management tab, thereby finding the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// Password, used when logging in. requirement: cannot be empty, 8-64 characters, must contain at least two items from lowercase letters, uppercase letters, digits, and special characters [`()~!@#$%^&*_=|{}[]:;',.?/].
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// Description. If this parameter is not passed in, it won't be modified.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// User tag, used to determine the access permission of the user for RabbitMQ Management.
	// management: ordinary console user. monitoring: administrative console user. other value: non-console user.
	Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The maximum number of connections for the user. If this parameter is not passed in, it won't be modified.
	MaxConnections *int64 `json:"MaxConnections,omitnil,omitempty" name:"MaxConnections"`

	// The maximum number of channels for the user. If this parameter is not passed in, it won't be modified.
	MaxChannels *int64 `json:"MaxChannels,omitnil,omitempty" name:"MaxChannels"`
}

func (r *ModifyRabbitMQUserRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRabbitMQUserRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "User")
	delete(f, "Password")
	delete(f, "Description")
	delete(f, "Tags")
	delete(f, "MaxConnections")
	delete(f, "MaxChannels")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRabbitMQUserRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRabbitMQUserResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRabbitMQUserResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRabbitMQUserResponseParams `json:"Response"`
}

func (r *ModifyRabbitMQUserResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRabbitMQUserResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRabbitMQVirtualHostRequestParams struct {
	// Instance ID, such as amqp-xxxxxxxx. specifies the effective InstanceId that can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Describes the Virtual Host.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Message trace flag. Valid values: `true` (Enabled), `false` (Disabled).
	TraceFlag *bool `json:"TraceFlag,omitnil,omitempty" name:"TraceFlag"`
}

type ModifyRabbitMQVirtualHostRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as amqp-xxxxxxxx. specifies the effective InstanceId that can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// VirtualHost name, such as testvhost. effective VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Describes the Virtual Host.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Message trace flag. Valid values: `true` (Enabled), `false` (Disabled).
	TraceFlag *bool `json:"TraceFlag,omitnil,omitempty" name:"TraceFlag"`
}

func (r *ModifyRabbitMQVirtualHostRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRabbitMQVirtualHostRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "VirtualHost")
	delete(f, "Description")
	delete(f, "TraceFlag")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRabbitMQVirtualHostRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRabbitMQVirtualHostResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRabbitMQVirtualHostResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRabbitMQVirtualHostResponseParams `json:"Response"`
}

func (r *ModifyRabbitMQVirtualHostResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRabbitMQVirtualHostResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQClusterRequestParams struct {
	// RocketMQ cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// 3–64 letters, digits, hyphens, and underscores
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Whether to enable the HTTP access over the public network
	PublicAccessEnabled *bool `json:"PublicAccessEnabled,omitnil,omitempty" name:"PublicAccessEnabled"`
}

type ModifyRocketMQClusterRequest struct {
	*tchttp.BaseRequest
	
	// RocketMQ cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// 3–64 letters, digits, hyphens, and underscores
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Whether to enable the HTTP access over the public network
	PublicAccessEnabled *bool `json:"PublicAccessEnabled,omitnil,omitempty" name:"PublicAccessEnabled"`
}

func (r *ModifyRocketMQClusterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "ClusterName")
	delete(f, "Remark")
	delete(f, "PublicAccessEnabled")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQClusterResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRocketMQClusterResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRocketMQClusterResponseParams `json:"Response"`
}

func (r *ModifyRocketMQClusterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQClusterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQEnvironmentRoleRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Authorization item, which can contain a non-empty character array of up to 2 items including produce and consume.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Permission configuration for topic and group dimensions.
	DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"`
}

type ModifyRocketMQEnvironmentRoleRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Authorization item, which can contain a non-empty character array of up to 2 items including produce and consume.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Permission configuration for topic and group dimensions.
	DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"`
}

func (r *ModifyRocketMQEnvironmentRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQEnvironmentRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "RoleName")
	delete(f, "Permissions")
	delete(f, "ClusterId")
	delete(f, "DetailedPerms")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQEnvironmentRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQEnvironmentRoleResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRocketMQEnvironmentRoleResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRocketMQEnvironmentRoleResponseParams `json:"Response"`
}

func (r *ModifyRocketMQEnvironmentRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQEnvironmentRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQGroupRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Consumer group name
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Whether to enable consumption
	ReadEnable *bool `json:"ReadEnable,omitnil,omitempty" name:"ReadEnable"`

	// Whether to enable broadcast consumption
	BroadcastEnable *bool `json:"BroadcastEnable,omitnil,omitempty" name:"BroadcastEnable"`

	// The maximum number of retries
	RetryMaxTimes *uint64 `json:"RetryMaxTimes,omitnil,omitempty" name:"RetryMaxTimes"`
}

type ModifyRocketMQGroupRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Consumer group name
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Whether to enable consumption
	ReadEnable *bool `json:"ReadEnable,omitnil,omitempty" name:"ReadEnable"`

	// Whether to enable broadcast consumption
	BroadcastEnable *bool `json:"BroadcastEnable,omitnil,omitempty" name:"BroadcastEnable"`

	// The maximum number of retries
	RetryMaxTimes *uint64 `json:"RetryMaxTimes,omitnil,omitempty" name:"RetryMaxTimes"`
}

func (r *ModifyRocketMQGroupRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQGroupRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "GroupId")
	delete(f, "Remark")
	delete(f, "ReadEnable")
	delete(f, "BroadcastEnable")
	delete(f, "RetryMaxTimes")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQGroupRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQGroupResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRocketMQGroupResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRocketMQGroupResponseParams `json:"Response"`
}

func (r *ModifyRocketMQGroupResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQGroupResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQInstanceRequestParams struct {
	// Dedicated Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Instance Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Instance message retention time, in hours
	MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"`

	// Whether to enable deletion protection
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`

	// Controls the TPS ratio for producing and consuming messages. Value range: 0–1. Default value: 0.5.
	SendReceiveRatio *float64 `json:"SendReceiveRatio,omitnil,omitempty" name:"SendReceiveRatio"`
}

type ModifyRocketMQInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Dedicated Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Instance Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Instance message retention time, in hours
	MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"`

	// Whether to enable deletion protection
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`

	// Controls the TPS ratio for producing and consuming messages. Value range: 0–1. Default value: 0.5.
	SendReceiveRatio *float64 `json:"SendReceiveRatio,omitnil,omitempty" name:"SendReceiveRatio"`
}

func (r *ModifyRocketMQInstanceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Name")
	delete(f, "Remark")
	delete(f, "MessageRetention")
	delete(f, "EnableDeletionProtection")
	delete(f, "SendReceiveRatio")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQInstanceResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRocketMQInstanceResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRocketMQInstanceResponseParams `json:"Response"`
}

func (r *ModifyRocketMQInstanceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQInstanceSpecRequestParams struct {
	// ID of the exclusive instance
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance specification.
	// Valid values: `rocket-vip-basic-1` (Basic),
	// `rocket-vip-basic-2` (Standard),
	// `rocket-vip-basic-3` (Advanced I),
	// `rocket-vip-basic-4` (Advanced II).
	Specification *string `json:"Specification,omitnil,omitempty" name:"Specification"`

	// Node count
	NodeCount *uint64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// Storage space in GB
	StorageSize *uint64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`
}

type ModifyRocketMQInstanceSpecRequest struct {
	*tchttp.BaseRequest
	
	// ID of the exclusive instance
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance specification.
	// Valid values: `rocket-vip-basic-1` (Basic),
	// `rocket-vip-basic-2` (Standard),
	// `rocket-vip-basic-3` (Advanced I),
	// `rocket-vip-basic-4` (Advanced II).
	Specification *string `json:"Specification,omitnil,omitempty" name:"Specification"`

	// Node count
	NodeCount *uint64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// Storage space in GB
	StorageSize *uint64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`
}

func (r *ModifyRocketMQInstanceSpecRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQInstanceSpecRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Specification")
	delete(f, "NodeCount")
	delete(f, "StorageSize")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQInstanceSpecRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQInstanceSpecResponseParams struct {
	// Order ID
	OrderId *string `json:"OrderId,omitnil,omitempty" name:"OrderId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRocketMQInstanceSpecResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRocketMQInstanceSpecResponseParams `json:"Response"`
}

func (r *ModifyRocketMQInstanceSpecResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQInstanceSpecResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQNamespaceRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name, which can contain 3–64 letters, digits, hyphens, and underscores
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// This parameter is disused.
	Ttl *uint64 `json:"Ttl,omitnil,omitempty" name:"Ttl"`

	// This parameter is disused.
	RetentionTime *uint64 `json:"RetentionTime,omitnil,omitempty" name:"RetentionTime"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Whether to enable the public network access
	PublicAccessEnabled *bool `json:"PublicAccessEnabled,omitnil,omitempty" name:"PublicAccessEnabled"`
}

type ModifyRocketMQNamespaceRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name, which can contain 3–64 letters, digits, hyphens, and underscores
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// This parameter is disused.
	Ttl *uint64 `json:"Ttl,omitnil,omitempty" name:"Ttl"`

	// This parameter is disused.
	RetentionTime *uint64 `json:"RetentionTime,omitnil,omitempty" name:"RetentionTime"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Whether to enable the public network access
	PublicAccessEnabled *bool `json:"PublicAccessEnabled,omitnil,omitempty" name:"PublicAccessEnabled"`
}

func (r *ModifyRocketMQNamespaceRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQNamespaceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "Ttl")
	delete(f, "RetentionTime")
	delete(f, "Remark")
	delete(f, "PublicAccessEnabled")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQNamespaceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQNamespaceResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRocketMQNamespaceResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRocketMQNamespaceResponseParams `json:"Response"`
}

func (r *ModifyRocketMQNamespaceResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQNamespaceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQRoleRequestParams struct {
	// Role name. Does not support Chinese characters and special characters other than hyphens (-) and underscores (_), and must be greater than 0 and less than or equal to 32 in length.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remark description. Length must be greater than or equal to 0 and less than or equal to 128.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Permission type. Permissions are granted by cluster by default. Cluster: cluster level; TopicAndGroup: topic/consumer group level.
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`
}

type ModifyRocketMQRoleRequest struct {
	*tchttp.BaseRequest
	
	// Role name. Does not support Chinese characters and special characters other than hyphens (-) and underscores (_), and must be greater than 0 and less than or equal to 32 in length.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Required field, cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remark description. Length must be greater than or equal to 0 and less than or equal to 128.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Permission type. Permissions are granted by cluster by default. Cluster: cluster level; TopicAndGroup: topic/consumer group level.
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`
}

func (r *ModifyRocketMQRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RoleName")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "PermType")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQRoleResponseParams struct {
	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Specifies the remark description.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRocketMQRoleResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRocketMQRoleResponseParams `json:"Response"`
}

func (r *ModifyRocketMQRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQTopicRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Number of partitions, which is invalid for globally sequential messages and cannot be less than the current number of partitions.
	PartitionNum *int64 `json:"PartitionNum,omitnil,omitempty" name:"PartitionNum"`
}

type ModifyRocketMQTopicRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Remarks (up to 128 characters)
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Number of partitions, which is invalid for globally sequential messages and cannot be less than the current number of partitions.
	PartitionNum *int64 `json:"PartitionNum,omitnil,omitempty" name:"PartitionNum"`
}

func (r *ModifyRocketMQTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "Topic")
	delete(f, "Remark")
	delete(f, "PartitionNum")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRocketMQTopicResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRocketMQTopicResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRocketMQTopicResponseParams `json:"Response"`
}

func (r *ModifyRocketMQTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRocketMQTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRoleRequestParams struct {
	// Role name, which can contain up to 32 letters, digits, hyphens, and underscores.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Batch binds namespace information.
	EnvironmentRoleSets []*EnvironmentRoleSet `json:"EnvironmentRoleSets,omitnil,omitempty" name:"EnvironmentRoleSets"`

	// Unbinds all namespaces. set to true.
	UnbindAllEnvironment *bool `json:"UnbindAllEnvironment,omitnil,omitempty" name:"UnbindAllEnvironment"`
}

type ModifyRoleRequest struct {
	*tchttp.BaseRequest
	
	// Role name, which can contain up to 32 letters, digits, hyphens, and underscores.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Cluster ID (required)
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Batch binds namespace information.
	EnvironmentRoleSets []*EnvironmentRoleSet `json:"EnvironmentRoleSets,omitnil,omitempty" name:"EnvironmentRoleSets"`

	// Unbinds all namespaces. set to true.
	UnbindAllEnvironment *bool `json:"UnbindAllEnvironment,omitnil,omitempty" name:"UnbindAllEnvironment"`
}

func (r *ModifyRoleRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRoleRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RoleName")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "EnvironmentRoleSets")
	delete(f, "UnbindAllEnvironment")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRoleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRoleResponseParams struct {
	// Role name
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyRoleResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRoleResponseParams `json:"Response"`
}

func (r *ModifyRoleResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyRoleResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyTopicRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Specifies the number of partitions, which must be greater than or equal to the original partition count. if you want to maintain the original number of partitions, please enter the original number. changing the number of partitions is only effective for non-global sequential messages and cannot exceed 32 partitions.
	Partitions *uint64 `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Unconsumed message expiration time. measurement unit: seconds. value range: 60 seconds to 15 days.
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Default if not passed is native policy. DefaultPolicy means when the subscription reaches the maximum unacknowledged messages of 5000, the server will stop pushing messages to all consumers under the current subscription. DynamicPolicy refers to dynamically adjusting the maximum unacknowledged messages under the subscription, with the specific quota being the maximum between 5000 and the number of consumers multiplied by 20. the default maximum unacknowledged message count per consumer is 20. exceeding this limit only affects that consumer and does not affect other consumers.
	UnackPolicy *string `json:"UnackPolicy,omitnil,omitempty" name:"UnackPolicy"`

	// Whether exception consumer isolation is enabled.
	IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"`

	// Consumer Ack timeout period in seconds. value range: 60-(3600*24).
	AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"`
}

type ModifyTopicRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Specifies the number of partitions, which must be greater than or equal to the original partition count. if you want to maintain the original number of partitions, please enter the original number. changing the number of partitions is only effective for non-global sequential messages and cannot exceed 32 partitions.
	Partitions *uint64 `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Unconsumed message expiration time. measurement unit: seconds. value range: 60 seconds to 15 days.
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Default if not passed is native policy. DefaultPolicy means when the subscription reaches the maximum unacknowledged messages of 5000, the server will stop pushing messages to all consumers under the current subscription. DynamicPolicy refers to dynamically adjusting the maximum unacknowledged messages under the subscription, with the specific quota being the maximum between 5000 and the number of consumers multiplied by 20. the default maximum unacknowledged message count per consumer is 20. exceeding this limit only affects that consumer and does not affect other consumers.
	UnackPolicy *string `json:"UnackPolicy,omitnil,omitempty" name:"UnackPolicy"`

	// Whether exception consumer isolation is enabled.
	IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"`

	// Consumer Ack timeout period in seconds. value range: 60-(3600*24).
	AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"`
}

func (r *ModifyTopicRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyTopicRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "Partitions")
	delete(f, "ClusterId")
	delete(f, "Remark")
	delete(f, "MsgTTL")
	delete(f, "UnackPolicy")
	delete(f, "IsolateConsumerEnable")
	delete(f, "AckTimeOut")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyTopicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyTopicResponseParams struct {
	// Number of partitions
	Partitions *uint64 `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// Remarks (up to 128 characters).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyTopicResponse struct {
	*tchttp.BaseResponse
	Response *ModifyTopicResponseParams `json:"Response"`
}

func (r *ModifyTopicResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyTopicResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type MsgLog struct {
	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Producer name.
	ProducerName *string `json:"ProducerName,omitnil,omitempty" name:"ProducerName"`

	// Production time.
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`

	// Producer client address.
	ProducerAddr *string `json:"ProducerAddr,omitnil,omitempty" name:"ProducerAddr"`
}

type PartitionsTopic struct {
	// Average size of the messages published in the last interval in bytes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AverageMsgSize *string `json:"AverageMsgSize,omitnil,omitempty" name:"AverageMsgSize"`

	// The number of consumers.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerCount *string `json:"ConsumerCount,omitnil,omitempty" name:"ConsumerCount"`

	// The total number of recorded messages.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastConfirmedEntry *string `json:"LastConfirmedEntry,omitnil,omitempty" name:"LastConfirmedEntry"`

	// Time when the last ledger was created.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastLedgerCreatedTimestamp *string `json:"LastLedgerCreatedTimestamp,omitnil,omitempty" name:"LastLedgerCreatedTimestamp"`

	// The number of messages published by local and replicated publishers per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgRateIn *string `json:"MsgRateIn,omitnil,omitempty" name:"MsgRateIn"`

	// The total number of messages delivered by local and replicated consumers per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgRateOut *string `json:"MsgRateOut,omitnil,omitempty" name:"MsgRateOut"`

	// The size (in bytes) of messages published by local and replicated publishers per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgThroughputIn *string `json:"MsgThroughputIn,omitnil,omitempty" name:"MsgThroughputIn"`

	// The size (in bytes) of messages delivered by local and replicated consumers per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgThroughputOut *string `json:"MsgThroughputOut,omitnil,omitempty" name:"MsgThroughputOut"`

	// The total number of recorded messages.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NumberOfEntries *string `json:"NumberOfEntries,omitnil,omitempty" name:"NumberOfEntries"`

	// Subpartition ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Partitions *int64 `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// The number of producers.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProducerCount *string `json:"ProducerCount,omitnil,omitempty" name:"ProducerCount"`

	// Total size of all stored messages in bytes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalSize *string `json:"TotalSize,omitnil,omitempty" name:"TotalSize"`

	// Topic type description.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicType *uint64 `json:"TopicType,omitnil,omitempty" name:"TopicType"`
}

type ProducerInfo struct {
	// Client ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"`

	// Client IP.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientIp *string `json:"ClientIp,omitnil,omitempty" name:"ClientIp"`

	// Specifies the client language.
	// JAVA((byte) 0),
	//     CPP((byte) 1),
	//     DOTNET((byte) 2),
	//     PYTHON((byte) 3),
	//     DELPHI((byte) 4),
	//     ERLANG((byte) 5),
	//     RUBY((byte) 6),
	//     OTHER((byte) 7),
	//     HTTP((byte) 8),
	//     GO((byte) 9),
	//     PHP((byte) 10),
	//     OMS((byte) 11);
	// Note: This field may return null, indicating that no valid values can be obtained.
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`

	// Client version.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Version *string `json:"Version,omitnil,omitempty" name:"Version"`

	// Last production time.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastUpdateTimestamp *int64 `json:"LastUpdateTimestamp,omitnil,omitempty" name:"LastUpdateTimestamp"`
}

type ProducerLog struct {
	// Message ID.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Producer name.
	ProducerName *string `json:"ProducerName,omitnil,omitempty" name:"ProducerName"`

	// Message production time.
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`

	// Producer client.
	ProducerAddr *string `json:"ProducerAddr,omitnil,omitempty" name:"ProducerAddr"`

	// Production time cost (in seconds).
	ProduceUseTime *uint64 `json:"ProduceUseTime,omitnil,omitempty" name:"ProduceUseTime"`

	// Status.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`
}

type PrometheusEndpointInfo struct {

	PrometheusEndpointStatus *string `json:"PrometheusEndpointStatus,omitnil,omitempty" name:"PrometheusEndpointStatus"`


	VpcPrometheusEndpoint []*string `json:"VpcPrometheusEndpoint,omitnil,omitempty" name:"VpcPrometheusEndpoint"`


	NodePrometheusAddress []*string `json:"NodePrometheusAddress,omitnil,omitempty" name:"NodePrometheusAddress"`


	VpcEndpointInfo *VpcEndpointInfo `json:"VpcEndpointInfo,omitnil,omitempty" name:"VpcEndpointInfo"`
}

type PublicAccessRule struct {
	// IP Subnet Information
	IpRule *string `json:"IpRule,omitnil,omitempty" name:"IpRule"`

	// Allow or Deny
	Allow *bool `json:"Allow,omitnil,omitempty" name:"Allow"`

	// Remarks
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

// Predefined struct for user
type PublishCmqMsgRequestParams struct {
	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message content. The total message size is up to 1,024 KB.
	MsgContent *string `json:"MsgContent,omitnil,omitempty" name:"MsgContent"`

	// Message tag. You can pass in multiple tags or a single route. Each tag or route can contain up to 64 characters.
	MsgTag []*string `json:"MsgTag,omitnil,omitempty" name:"MsgTag"`
}

type PublishCmqMsgRequest struct {
	*tchttp.BaseRequest
	
	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message content. The total message size is up to 1,024 KB.
	MsgContent *string `json:"MsgContent,omitnil,omitempty" name:"MsgContent"`

	// Message tag. You can pass in multiple tags or a single route. Each tag or route can contain up to 64 characters.
	MsgTag []*string `json:"MsgTag,omitnil,omitempty" name:"MsgTag"`
}

func (r *PublishCmqMsgRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *PublishCmqMsgRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TopicName")
	delete(f, "MsgContent")
	delete(f, "MsgTag")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "PublishCmqMsgRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type PublishCmqMsgResponseParams struct {
	// `true` indicates that the sending is successful
	Result *bool `json:"Result,omitnil,omitempty" name:"Result"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type PublishCmqMsgResponse struct {
	*tchttp.BaseResponse
	Response *PublishCmqMsgResponseParams `json:"Response"`
}

func (r *PublishCmqMsgResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *PublishCmqMsgResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type Publisher struct {
	// Producer ID.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	ProducerId *int64 `json:"ProducerId,omitnil,omitempty" name:"ProducerId"`

	// Producer name.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	ProducerName *string `json:"ProducerName,omitnil,omitempty" name:"ProducerName"`

	// Producer address.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Address *string `json:"Address,omitnil,omitempty" name:"Address"`

	// Client version.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	ClientVersion *string `json:"ClientVersion,omitnil,omitempty" name:"ClientVersion"`

	// Message production rate (message/sec).
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MsgRateIn *float64 `json:"MsgRateIn,omitnil,omitempty" name:"MsgRateIn"`

	// Message production throughput rate (byte/sec).
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MsgThroughputIn *float64 `json:"MsgThroughputIn,omitnil,omitempty" name:"MsgThroughputIn"`

	// Average message size in bytes.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	AverageMsgSize *float64 `json:"AverageMsgSize,omitnil,omitempty" name:"AverageMsgSize"`

	// Connection time.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	ConnectedSince *string `json:"ConnectedSince,omitnil,omitempty" name:"ConnectedSince"`

	// Serial number of the topic partition connected to the producer.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Partition *int64 `json:"Partition,omitnil,omitempty" name:"Partition"`
}

type PulsarNetworkAccessPointInfo struct {
	// VPC ID. This field is left empty for supporting network and public network access points.
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID. This field is left empty for supporting network and public network access points.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Access address
	Endpoint *string `json:"Endpoint,omitnil,omitempty" name:"Endpoint"`

	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Access point type: 
	// `0`: Supporting network access point 
	// `1`: VPC access point 
	// `2`: Public network access point
	RouteType *uint64 `json:"RouteType,omitnil,omitempty" name:"RouteType"`

	// 0: local region access. since cross-region disaster recovery is not configured, this type of access point cannot perform cross-region switchover or switch back from remote access.
	// Local region access. due to the configuration of cross-region disaster recovery, switchover can be performed at any time in a different location. this state is used for the primary cluster access point.
	// Cross-Region access, completed offsite switchover, this state is used for the access point of the source cluster. the access point in this state is non-deletable.
	// 3: cross-region access can be switched back from remote access at any time. this state is for the access point of the target cluster. the access point in this state is non-deletable.
	// Cross-Region access. the target cluster has completed offsite switchback and is in the state of waiting for deletion.
	// Note: This field may return null, indicating that no valid values can be obtained.
	OperationType *uint64 `json:"OperationType,omitnil,omitempty" name:"OperationType"`

	// Access point type.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessPointsType *string `json:"AccessPointsType,omitnil,omitempty" name:"AccessPointsType"`

	// Bandwidth. currently only public network has this value.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Class.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SecurityPolicy []*SecurityPolicy `json:"SecurityPolicy,omitnil,omitempty" name:"SecurityPolicy"`

	// Indicates whether it is a standard access point. valid values: true (standard), false (not standard).
	// Note: This field may return null, indicating that no valid values can be obtained.
	StandardAccessPoint *bool `json:"StandardAccessPoint,omitnil,omitempty" name:"StandardAccessPoint"`

	// AZ information
	// Note: This field may return null, indicating that no valid values can be obtained.
	ZoneName *string `json:"ZoneName,omitnil,omitempty" name:"ZoneName"`

	// Specifies whether TLS encryption is enabled.
	Tls *bool `json:"Tls,omitnil,omitempty" name:"Tls"`

	// Access point custom domain name.
	CustomUrl *string `json:"CustomUrl,omitnil,omitempty" name:"CustomUrl"`
}

type PulsarProClusterInfo struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Cluster name
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Description
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Creation time
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Cluster status. Valid values: `0` (Creating), `1` (Normal), `2` (Isolated).
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Cluster version
	Version *string `json:"Version,omitnil,omitempty" name:"Version"`

	// Node distribution
	// Note: This field may return null, indicating that no valid values can be obtained.
	NodeDistribution []*InstanceNodeDistribution `json:"NodeDistribution,omitnil,omitempty" name:"NodeDistribution"`

	// Max storage capacity in MB
	MaxStorage *uint64 `json:"MaxStorage,omitnil,omitempty" name:"MaxStorage"`

	// Whether the route can be modified
	// Note: This field may return null, indicating that no valid values can be obtained.
	CanEditRoute *bool `json:"CanEditRoute,omitnil,omitempty" name:"CanEditRoute"`

	// Specifies different billing specifications for pro edition and small-scale professional edition: PULSAR.P1 fixed storage and PULSAR.P2 elastic storage.
	// Note: This field may return null, indicating that no valid values can be obtained.
	BillingLabelVersion *string `json:"BillingLabelVersion,omitnil,omitempty" name:"BillingLabelVersion"`

	// Instance expiration timestamp, accurate to the millisecond level.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpireTime *int64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Whether to enable automatic topic creation.
	// true indicates enabled. false indicates disabled.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AutoCreateTopicStatus *bool `json:"AutoCreateTopicStatus,omitnil,omitempty" name:"AutoCreateTopicStatus"`

	// Specifies the default number of partitions for automatic topic creation. valid values: 0 if not enabled.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DefaultPartitionNumber *int64 `json:"DefaultPartitionNumber,omitnil,omitempty" name:"DefaultPartitionNumber"`

	// User-Defined tenant alias. if there is no, reuse the professional cluster ID.
	Tenant *string `json:"Tenant,omitnil,omitempty" name:"Tenant"`

	// Deletion protection switch flag.
	DeleteProtection *int64 `json:"DeleteProtection,omitnil,omitempty" name:"DeleteProtection"`
}

type PulsarProClusterSpecInfo struct {
	// Cluster specification name
	SpecName *string `json:"SpecName,omitnil,omitempty" name:"SpecName"`

	// Peak TPS
	MaxTps *uint64 `json:"MaxTps,omitnil,omitempty" name:"MaxTps"`

	// Peak bandwidth in Mbps
	MaxBandWidth *uint64 `json:"MaxBandWidth,omitnil,omitempty" name:"MaxBandWidth"`

	// Maximum number of namespaces
	MaxNamespaces *uint64 `json:"MaxNamespaces,omitnil,omitempty" name:"MaxNamespaces"`

	// Maximum number of topic partitions
	MaxTopics *uint64 `json:"MaxTopics,omitnil,omitempty" name:"MaxTopics"`

	// Elastic TPS beyond the specification
	// Note: This field may return null, indicating that no valid values can be obtained.
	ScalableTps *uint64 `json:"ScalableTps,omitnil,omitempty" name:"ScalableTps"`

	// 32 or 128.
	// Maximum number of partitions for topics in the current cluster.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxPartitions *uint64 `json:"MaxPartitions,omitnil,omitempty" name:"MaxPartitions"`

	// Maximum delayed message count for the product. 0 indicates no limit.	
	MaxDelayedMessages *int64 `json:"MaxDelayedMessages,omitnil,omitempty" name:"MaxDelayedMessages"`
}

type PulsarProInstance struct {
	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Instance version
	InstanceVersion *string `json:"InstanceVersion,omitnil,omitempty" name:"InstanceVersion"`

	// Instance status. Valid values: `0` (Creating), `1` (Normal), `2` (Isolated), `3` (Terminated), `4` (Abnormal), `5` (Delivery failed), `6` (Adjusting configuration), `7` (Configuration adjustment failed).
	Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Instance specification name
	ConfigDisplay *string `json:"ConfigDisplay,omitnil,omitempty" name:"ConfigDisplay"`

	// Peak TPS
	MaxTps *uint64 `json:"MaxTps,omitnil,omitempty" name:"MaxTps"`

	// Storage capacity in GB
	MaxStorage *uint64 `json:"MaxStorage,omitnil,omitempty" name:"MaxStorage"`

	// Instance expiration time in milliseconds
	ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Renewal mode. Valid values: `0` (Manual renewal, which is the default mode), `1` (Auto-renewal), `2` (Manual renewal, which is specified by users).
	AutoRenewFlag *uint64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Payment mode. Valid values: `0` (Pay-as-you-go), `1` (Monthly subscription).
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Remarks
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Instance specification ID
	SpecName *string `json:"SpecName,omitnil,omitempty" name:"SpecName"`

	// Elastic TPS beyond the specification
	// Note: This field may return null, indicating that no valid values can be obtained.
	ScalableTps *uint64 `json:"ScalableTps,omitnil,omitempty" name:"ScalableTps"`

	// VPC ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Peak bandwidth in Mbps
	MaxBandWidth *uint64 `json:"MaxBandWidth,omitnil,omitempty" name:"MaxBandWidth"`

	// Tag list of the cluster
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Cluster Creation Time
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Specifies the different billing specifications for pro edition and small-scale professional edition: PULSAR.P1 fixed storage and PULSAR.P2 elastic storage.
	// Note: This field may return null, indicating that no valid values can be obtained.
	BillingLabelVersion *string `json:"BillingLabelVersion,omitnil,omitempty" name:"BillingLabelVersion"`

	// Custom tenant.
	Tenant *string `json:"Tenant,omitnil,omitempty" name:"Tenant"`

	// Certificate list of the cluster.
	CertificateList []*CertificateInfo `json:"CertificateList,omitnil,omitempty" name:"CertificateList"`
}

type QueueQuota struct {

	MaxQueue *int64 `json:"MaxQueue,omitnil,omitempty" name:"MaxQueue"`

	// Number of created Queues.
	UsedQueue *int64 `json:"UsedQueue,omitnil,omitempty" name:"UsedQueue"`
}

type RabbitMQBindingListInfo struct {
	// Routing relationship ID.
	BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"`

	// VhostName
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Source exchange name.
	Source *string `json:"Source,omitnil,omitempty" name:"Source"`

	// Destination type. Valid values: queue and exchange.
	DestinationType *string `json:"DestinationType,omitnil,omitempty" name:"DestinationType"`

	// Destination resource name.
	Destination *string `json:"Destination,omitnil,omitempty" name:"Destination"`

	// Binds the key.
	RoutingKey *string `json:"RoutingKey,omitnil,omitempty" name:"RoutingKey"`

	// Source exchange type.
	SourceExchangeType *string `json:"SourceExchangeType,omitnil,omitempty" name:"SourceExchangeType"`

	// Creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Modification time.
	ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"`

	// Creation timestamp.
	CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"`

	// Modification timestamp.
	ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"`
}

type RabbitMQClusterAccessInfo struct {

	PublicAccessEndpoint *string `json:"PublicAccessEndpoint,omitnil,omitempty" name:"PublicAccessEndpoint"`


	WebConsoleEndpoint *string `json:"WebConsoleEndpoint,omitnil,omitempty" name:"WebConsoleEndpoint"`


	WebConsoleUsername *string `json:"WebConsoleUsername,omitnil,omitempty" name:"WebConsoleUsername"`


	WebConsolePassword *string `json:"WebConsolePassword,omitnil,omitempty" name:"WebConsolePassword"`


	PublicAccessEndpointStatus *bool `json:"PublicAccessEndpointStatus,omitnil,omitempty" name:"PublicAccessEndpointStatus"`


	PublicControlConsoleSwitchStatus *bool `json:"PublicControlConsoleSwitchStatus,omitnil,omitempty" name:"PublicControlConsoleSwitchStatus"`


	VpcControlConsoleSwitchStatus *bool `json:"VpcControlConsoleSwitchStatus,omitnil,omitempty" name:"VpcControlConsoleSwitchStatus"`


	VpcWebConsoleEndpoint *string `json:"VpcWebConsoleEndpoint,omitnil,omitempty" name:"VpcWebConsoleEndpoint"`

	// Status of the public network access point in the console. Valid values: OFF, ON, CREATING, and DELETING.
	PublicWebConsoleSwitchStatus *string `json:"PublicWebConsoleSwitchStatus,omitnil,omitempty" name:"PublicWebConsoleSwitchStatus"`

	// Vpc console switch state. example value.
	// OFF/ON/CREATING/DELETING
	VpcWebConsoleSwitchStatus *string `json:"VpcWebConsoleSwitchStatus,omitnil,omitempty" name:"VpcWebConsoleSwitchStatus"`

	// Status of the public network access point in the console. Valid values: OFF, ON, CREATING, and DELETING.
	PublicDataStreamStatus *string `json:"PublicDataStreamStatus,omitnil,omitempty" name:"PublicDataStreamStatus"`

	// Prometheus information.
	PrometheusEndpointInfo *PrometheusEndpointInfo `json:"PrometheusEndpointInfo,omitnil,omitempty" name:"PrometheusEndpointInfo"`

	// Public domain name access point.
	WebConsoleDomainEndpoint *string `json:"WebConsoleDomainEndpoint,omitnil,omitempty" name:"WebConsoleDomainEndpoint"`

	// VPC information used by the control plane.
	ControlPlaneEndpointInfo *VpcEndpointInfo `json:"ControlPlaneEndpointInfo,omitnil,omitempty" name:"ControlPlaneEndpointInfo"`

	// Encrypted TLS data stream public network access point.
	PublicTlsAccessEndpoint *string `json:"PublicTlsAccessEndpoint,omitnil,omitempty" name:"PublicTlsAccessEndpoint"`

	// Specifies whether to reuse the public IP address.
	PublicIpReused *bool `json:"PublicIpReused,omitnil,omitempty" name:"PublicIpReused"`
}

type RabbitMQClusterInfo struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`


	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`


	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

	// Creation time in milliseconds. unix timestamp.
	CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Cluster description information
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`


	Vpcs []*VpcEndpointInfo `json:"Vpcs,omitnil,omitempty" name:"Vpcs"`

	// AZ information
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`


	VirtualHostNumber *int64 `json:"VirtualHostNumber,omitnil,omitempty" name:"VirtualHostNumber"`


	QueueNumber *int64 `json:"QueueNumber,omitnil,omitempty" name:"QueueNumber"`


	MessagePublishRate *float64 `json:"MessagePublishRate,omitnil,omitempty" name:"MessagePublishRate"`


	MessageStackNumber *int64 `json:"MessageStackNumber,omitnil,omitempty" name:"MessageStackNumber"`

	// Specifies the instance expiration time in milliseconds as a unix timestamp. the value is 0 for pay-as-you-go resources.
	ExpireTime *int64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`


	ChannelNumber *int64 `json:"ChannelNumber,omitnil,omitempty" name:"ChannelNumber"`


	ConnectionNumber *int64 `json:"ConnectionNumber,omitnil,omitempty" name:"ConnectionNumber"`


	ConsumerNumber *int64 `json:"ConsumerNumber,omitnil,omitempty" name:"ConsumerNumber"`


	ExchangeNumber *int64 `json:"ExchangeNumber,omitnil,omitempty" name:"ExchangeNumber"`

	// Cluster exception information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExceptionInformation *string `json:"ExceptionInformation,omitnil,omitempty" name:"ExceptionInformation"`

	// Instance status. 0: creating; 1: normal; 2: isolating; 3: terminated; 4: abnormal; 5: delivery failed.
	ClusterStatus *int64 `json:"ClusterStatus,omitnil,omitempty" name:"ClusterStatus"`

	// Auto-renewal flag. 0 indicates the default status (If the default status is not configured, manual renewal is enabled), 1 indicates auto-renewal, and 2 indicates explicitly no auto-renewal (configured by the user).
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Whether the image queue policy is enabled. 1: enabled; 0: disabled.
	MirrorQueuePolicyFlag *int64 `json:"MirrorQueuePolicyFlag,omitnil,omitempty" name:"MirrorQueuePolicyFlag"`

	// Number of messages consumed per second. Unit: messages/second.
	MessageConsumeRate *float64 `json:"MessageConsumeRate,omitnil,omitempty" name:"MessageConsumeRate"`

	// Cluster version information.
	ClusterVersion *string `json:"ClusterVersion,omitnil,omitempty" name:"ClusterVersion"`

	// Billing mode. 0: postpaid; 1: prepaid.
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Instance type. 0: Exclusive Edition; 1: Serverless Edition.
	InstanceType *uint64 `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Specifies the isolation time started. unix timestamp.
	IsolatedTime *int64 `json:"IsolatedTime,omitnil,omitempty" name:"IsolatedTime"`

	// Whether it is a container instance. default true.
	Container *bool `json:"Container,omitnil,omitempty" name:"Container"`

	// Tag list
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Whether deletion protection is enabled.
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`
}

type RabbitMQClusterSpecInfo struct {

	SpecName *string `json:"SpecName,omitnil,omitempty" name:"SpecName"`


	NodeCount *uint64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`


	MaxTps *uint64 `json:"MaxTps,omitnil,omitempty" name:"MaxTps"`


	MaxBandWidth *uint64 `json:"MaxBandWidth,omitnil,omitempty" name:"MaxBandWidth"`


	MaxStorage *uint64 `json:"MaxStorage,omitnil,omitempty" name:"MaxStorage"`


	PublicNetworkTps *uint64 `json:"PublicNetworkTps,omitnil,omitempty" name:"PublicNetworkTps"`
}

type RabbitMQClusterWhiteListInfo struct {
	// Deprecated.
	WhiteList *string `json:"WhiteList,omitnil,omitempty" name:"WhiteList"`

	// Public network console allowlist.
	PublicControlConsoleWhiteList *string `json:"PublicControlConsoleWhiteList,omitnil,omitempty" name:"PublicControlConsoleWhiteList"`

	// Public network data flow allowlist.
	PublicDataStreamWhiteList *string `json:"PublicDataStreamWhiteList,omitnil,omitempty" name:"PublicDataStreamWhiteList"`


	PublicControlConsoleWhiteListStatus *string `json:"PublicControlConsoleWhiteListStatus,omitnil,omitempty" name:"PublicControlConsoleWhiteListStatus"`


	PublicDataStreamWhiteListStatus *string `json:"PublicDataStreamWhiteListStatus,omitnil,omitempty" name:"PublicDataStreamWhiteListStatus"`
}

type RabbitMQExchangeListInfo struct {
	// Exchange name.
	ExchangeName *string `json:"ExchangeName,omitnil,omitempty" name:"ExchangeName"`

	// Remarks
	// 
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Exchange type. Valid values: "fanout", "direct", "topic", "headers".
	ExchangeType *string `json:"ExchangeType,omitnil,omitempty" name:"ExchangeType"`

	// Specifies the Host name of the Virtual switch.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Exchange creator. "system": "created by the system"; "user": "created by a user".
	ExchangeCreator *string `json:"ExchangeCreator,omitnil,omitempty" name:"ExchangeCreator"`

	// Exchange creation time.
	CreateTimeStamp *string `json:"CreateTimeStamp,omitnil,omitempty" name:"CreateTimeStamp"`

	// Exchange modification time.
	ModTimeStamp *string `json:"ModTimeStamp,omitnil,omitempty" name:"ModTimeStamp"`

	// Input message rate.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MessageRateIn *float64 `json:"MessageRateIn,omitnil,omitempty" name:"MessageRateIn"`

	// Indicates the output message rate.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MessageRateOut *float64 `json:"MessageRateOut,omitnil,omitempty" name:"MessageRateOut"`

	// Whether the exchange is a durable one. true: durable; false: non-durable.
	Durable *bool `json:"Durable,omitnil,omitempty" name:"Durable"`

	// Whether automatic deletion is set for the exchange. true: automatic deletion set; false: automatic deletion not set.
	AutoDelete *bool `json:"AutoDelete,omitnil,omitempty" name:"AutoDelete"`

	// Whether the exchange is an internal one. true: internal exchange.
	Internal *bool `json:"Internal,omitnil,omitempty" name:"Internal"`

	// Instance ID of the exchange.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Effective policy name.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Policy *string `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Extended parameters of the key-value object type.
	Arguments *string `json:"Arguments,omitnil,omitempty" name:"Arguments"`

	// Number of unscheduled delayed messages.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MessagesDelayed *uint64 `json:"MessagesDelayed,omitnil,omitempty" name:"MessagesDelayed"`

	// Creation time timestamp.
	CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"`

	// Modification time timestamp.
	ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"`
}

type RabbitMQPermission struct {
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, such as admin. effective User names can be found by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking a cluster in the cluster list, entering cluster details, and locating the list of users under the User and permission management tab, thereby finding the username.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// VirtualHost name, such as testvhost. valid VirtualHost names can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1), clicking Vhost in the left sidebar, and finding the Vhost name in the Vhost list.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Type of permissions related to declare operations. This regular expression controls resource creation and deletion permissions of users in this vhost.
	ConfigRegexp *string `json:"ConfigRegexp,omitnil,omitempty" name:"ConfigRegexp"`

	// Type of permissions related to message write operations. This regular expression controls resource creation and deletion permissions of users in this vhost.
	WriteRegexp *string `json:"WriteRegexp,omitnil,omitempty" name:"WriteRegexp"`

	// Type of permissions related to message read operations. This regular expression controls resource creation and deletion permissions of users in this vhost.
	ReadRegexp *string `json:"ReadRegexp,omitnil,omitempty" name:"ReadRegexp"`

	// Creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Modification time.
	ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"`

	// Creation timestamp.
	CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"`

	// Modification timestamp.
	ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"`
}

type RabbitMQPrivateNode struct {
	// Node name
	// Note: This field may return null, indicating that no valid value can be obtained.
	NodeName *string `json:"NodeName,omitnil,omitempty" name:"NodeName"`

	// Node status. running indicates the node is active. down indicates an exception.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NodeStatus *string `json:"NodeStatus,omitnil,omitempty" name:"NodeStatus"`

	// CPU utilization
	// Note: This field may return null, indicating that no valid values can be obtained.
	CPUUsage *string `json:"CPUUsage,omitnil,omitempty" name:"CPUUsage"`

	// Memory usage in MB
	// Note: This field may return null, indicating that no valid values can be obtained.
	Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Disk utilization
	// Note: This field may return null, indicating that no valid values can be obtained.
	DiskUsage *string `json:"DiskUsage,omitnil,omitempty" name:"DiskUsage"`

	// The number of RabbitMQ Erlang processes
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProcessNumber *uint64 `json:"ProcessNumber,omitnil,omitempty" name:"ProcessNumber"`
}

type RabbitMQQueueListConsumerDetailInfo struct {
	// Consumer count.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	ConsumersNumber *int64 `json:"ConsumersNumber,omitnil,omitempty" name:"ConsumersNumber"`
}

type RabbitMQQueueListInfo struct {
	// Queue name
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Remarks
	// 
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Consumer information.
	ConsumerDetail *RabbitMQQueueListConsumerDetailInfo `json:"ConsumerDetail,omitnil,omitempty" name:"ConsumerDetail"`

	// Queue type. Valid values: "classic" and "quorum".
	QueueType *string `json:"QueueType,omitnil,omitempty" name:"QueueType"`

	// Number of retained messages
	// 
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MessageHeapCount *int64 `json:"MessageHeapCount,omitnil,omitempty" name:"MessageHeapCount"`

	// Message production rate per second.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MessageRateIn *float64 `json:"MessageRateIn,omitnil,omitempty" name:"MessageRateIn"`

	// Message consumption rate per second.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	MessageRateOut *float64 `json:"MessageRateOut,omitnil,omitempty" name:"MessageRateOut"`

	// Creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Modification time.
	ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"`

	// Whether the queue is durable. true: durable; false: non-durable.
	Durable *bool `json:"Durable,omitnil,omitempty" name:"Durable"`

	// Whether automatic deletion is set for the queue. true: automatic deletion set; false: automatic deletion not set.
	AutoDelete *bool `json:"AutoDelete,omitnil,omitempty" name:"AutoDelete"`

	// Instance ID of the queue.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Vhost name of the queue.
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Primary node name of the queue.
	Node *string `json:"Node,omitnil,omitempty" name:"Node"`

	// Indicates the name of the effective policy.
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	Policy *string `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Extended parameters of the key-value object type.
	Arguments *string `json:"Arguments,omitnil,omitempty" name:"Arguments"`

	// Whether the queue is exclusive.
	Exclusive *bool `json:"Exclusive,omitnil,omitempty" name:"Exclusive"`

	// Creation time timestamp.
	CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"`

	// Modification time timestamp.
	ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"`
}

type RabbitMQUser struct {
	// Instance ID, such as amqp-xxxxxxxx. effective InstanceId can be queried by logging in to the TDMQ RabbitMQ console (https://console.cloud.tencent.com/trabbitmq/cluster?rid=1).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Username, which is used for login.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// Password, which is used for login.
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// User description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// User tags, which determine the scope of permissions of this user to access RabbitMQ Management.
	Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"`

	// User creation time
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Last user modification time
	ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"`

	// User type. Valid values: `System` (Created by system), `User` (Created by user).
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Maximum number of available connections per user.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxConnections *int64 `json:"MaxConnections,omitnil,omitempty" name:"MaxConnections"`

	// Maximum number of available channels per user.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxChannels *int64 `json:"MaxChannels,omitnil,omitempty" name:"MaxChannels"`

	// Creation timestamp.
	CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"`

	// Modification timestamp.
	ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"`
}

type RabbitMQUserQuota struct {
	// Maximum creation number of users.
	MaxUser *int64 `json:"MaxUser,omitnil,omitempty" name:"MaxUser"`

	// Indicates the number of users in use.
	UsedUser *int64 `json:"UsedUser,omitnil,omitempty" name:"UsedUser"`
}

type RabbitMQVipInstance struct {
	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Instance version.
	InstanceVersion *string `json:"InstanceVersion,omitnil,omitempty" name:"InstanceVersion"`

	// Instance status. Valid values: `0` (Creating), `1` (Normal), `2` (Isolated), `3` (Terminated), `4` (Abnormal), `5` (Delivery failed).
	Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Number of nodes
	NodeCount *uint64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// Instance specification name
	ConfigDisplay *string `json:"ConfigDisplay,omitnil,omitempty" name:"ConfigDisplay"`

	// Peak TPS
	MaxTps *uint64 `json:"MaxTps,omitnil,omitempty" name:"MaxTps"`

	// Peak bandwidth in Mbps
	MaxBandWidth *uint64 `json:"MaxBandWidth,omitnil,omitempty" name:"MaxBandWidth"`

	// Storage capacity in GB
	MaxStorage *uint64 `json:"MaxStorage,omitnil,omitempty" name:"MaxStorage"`

	// Specifies the instance expiration time in milliseconds as a unix timestamp. the value is 0 for pay-as-you-go resources.
	ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Renewal mode. Valid values: `0` (Manual renewal, which is the default mode), `1` (Auto-renewal), `2` (Manual renewal, which is specified by users).
	AutoRenewFlag *uint64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// 1 indicates prepaid mode, 0 indicates postpaid.
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Node specification of the cluster. specifies the corresponding flag.
	// 2C8G:rabbit-vip-profession-2c8g
	// 4C16G:rabbit-vip-profession-4c16g
	// 8C32G:rabbit-vip-profession-8c32g
	// 16C32G:rabbit-vip-basic-4
	// 16C64G:rabbit-vip-profession-16c64g
	// 2C4G:rabbit-vip-basic-5
	// 4C8G:rabbit-vip-basic-1
	// 8C16G (sold out): rabbit-vip-basic-2.
	// Specifies the default value as 4C8G: rabbit-vip-basic-1.
	SpecName *string `json:"SpecName,omitnil,omitempty" name:"SpecName"`

	// Cluster exception information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExceptionInformation *string `json:"ExceptionInformation,omitnil,omitempty" name:"ExceptionInformation"`

	// Instance status. Valid values: `0` (Creating), `1` (Normal), `2` (Isolated), `3` (Terminated), `4` (Abnormal), `5` (Delivery failed).
	// This parameter is used to display the instance status additionally and distinguish from the `Status` parameter.
	ClusterStatus *int64 `json:"ClusterStatus,omitnil,omitempty" name:"ClusterStatus"`

	// Public network access point.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PublicAccessEndpoint *string `json:"PublicAccessEndpoint,omitnil,omitempty" name:"PublicAccessEndpoint"`

	// VPC access point list.
	Vpcs []*VpcEndpointInfo `json:"Vpcs,omitnil,omitempty" name:"Vpcs"`

	// Creation time in milliseconds. unix timestamp.
	CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Instance type. valid values: 0 (managed), 1 (Serverless).
	InstanceType *uint64 `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Isolation time, in milliseconds. unix timestamp.
	IsolatedTime *uint64 `json:"IsolatedTime,omitnil,omitempty" name:"IsolatedTime"`

	// Whether deletion protection is enabled.
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`

	// Tag list
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

type RabbitMQVirtualHostInfo struct {
	// Cluster instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Vhost name
	VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"`

	// Vhost description information.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Vhost tags.
	Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Modification time.
	ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"`

	// Vhost overview statistics information.
	VirtualHostStatistics *RabbitMQVirtualHostStatistics `json:"VirtualHostStatistics,omitnil,omitempty" name:"VirtualHostStatistics"`

	// Message trace enabling status. true: enabled; false: disabled.
	TraceFlag *bool `json:"TraceFlag,omitnil,omitempty" name:"TraceFlag"`

	// Vhost status, which corresponds to status in the native product console. Valid values: running, partial, stopped, and unknown.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Message backlog count.
	MessageHeapCount *int64 `json:"MessageHeapCount,omitnil,omitempty" name:"MessageHeapCount"`

	// Message input rate.
	MessageRateIn *float64 `json:"MessageRateIn,omitnil,omitempty" name:"MessageRateIn"`

	// Message output rate.
	MessageRateOut *float64 `json:"MessageRateOut,omitnil,omitempty" name:"MessageRateOut"`

	// Whether an image queue policy exists. true: Exists; false: Does not exist.
	MirrorQueuePolicyFlag *bool `json:"MirrorQueuePolicyFlag,omitnil,omitempty" name:"MirrorQueuePolicyFlag"`

	// Creation timestamp.
	CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"`

	// Modification timestamp.
	ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"`
}

type RabbitMQVirtualHostStatistics struct {
	// The number of queues in the current vhost
	CurrentQueues *int64 `json:"CurrentQueues,omitnil,omitempty" name:"CurrentQueues"`

	// The number of exchanges in the current vhost
	CurrentExchanges *int64 `json:"CurrentExchanges,omitnil,omitempty" name:"CurrentExchanges"`

	// The number of connections in the current vhost
	CurrentConnections *int64 `json:"CurrentConnections,omitnil,omitempty" name:"CurrentConnections"`

	// The number of channels in the current vhost
	CurrentChannels *int64 `json:"CurrentChannels,omitnil,omitempty" name:"CurrentChannels"`

	// The number of users in the current vhost
	CurrentUsers *int64 `json:"CurrentUsers,omitnil,omitempty" name:"CurrentUsers"`
}

// Predefined struct for user
type ReceiveMessageRequestParams struct {
	// Name of the topic which receives the message. It is better to be the full path of the topic, such as `tenant/namespace/topic`. If it is not specified, `public/default` will be used by default.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Subscriber name
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Default value: 1000. Messages received by the consumer will first be stored in the `receiverQueueSize` queue to tune the message receiving rate.
	ReceiverQueueSize *int64 `json:"ReceiverQueueSize,omitnil,omitempty" name:"ReceiverQueueSize"`

	// A parameter used to determine the position where the consumer initially receives messages. Valid values: `Earliest` (default), `Latest`.
	SubInitialPosition *string `json:"SubInitialPosition,omitnil,omitempty" name:"SubInitialPosition"`

	// This parameter is used to specify the maximum number of received messages in a batch for `BatchReceivePolicy`. The default value is 0, indicating that `BatchReceivePolicy` is disabled.
	MaxNumMessages *int64 `json:"MaxNumMessages,omitnil,omitempty" name:"MaxNumMessages"`

	// This parameter is used to specify the maximum body size (in bytes) of received messages in a batch for `BatchReceivePolicy`. The default value is 0, indicating that `BatchReceivePolicy` is disabled.
	MaxNumBytes *int64 `json:"MaxNumBytes,omitnil,omitempty" name:"MaxNumBytes"`

	// This parameter is used to specify the maximum wait timeout (in milliseconds) for receiving a batch of messages for `BatchReceivePolicy`. The default value is 0, indicating that `BatchReceivePolicy` is disabled.
	Timeout *int64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`
}

type ReceiveMessageRequest struct {
	*tchttp.BaseRequest
	
	// Name of the topic which receives the message. It is better to be the full path of the topic, such as `tenant/namespace/topic`. If it is not specified, `public/default` will be used by default.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Subscriber name
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Default value: 1000. Messages received by the consumer will first be stored in the `receiverQueueSize` queue to tune the message receiving rate.
	ReceiverQueueSize *int64 `json:"ReceiverQueueSize,omitnil,omitempty" name:"ReceiverQueueSize"`

	// A parameter used to determine the position where the consumer initially receives messages. Valid values: `Earliest` (default), `Latest`.
	SubInitialPosition *string `json:"SubInitialPosition,omitnil,omitempty" name:"SubInitialPosition"`

	// This parameter is used to specify the maximum number of received messages in a batch for `BatchReceivePolicy`. The default value is 0, indicating that `BatchReceivePolicy` is disabled.
	MaxNumMessages *int64 `json:"MaxNumMessages,omitnil,omitempty" name:"MaxNumMessages"`

	// This parameter is used to specify the maximum body size (in bytes) of received messages in a batch for `BatchReceivePolicy`. The default value is 0, indicating that `BatchReceivePolicy` is disabled.
	MaxNumBytes *int64 `json:"MaxNumBytes,omitnil,omitempty" name:"MaxNumBytes"`

	// This parameter is used to specify the maximum wait timeout (in milliseconds) for receiving a batch of messages for `BatchReceivePolicy`. The default value is 0, indicating that `BatchReceivePolicy` is disabled.
	Timeout *int64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`
}

func (r *ReceiveMessageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ReceiveMessageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Topic")
	delete(f, "SubscriptionName")
	delete(f, "ReceiverQueueSize")
	delete(f, "SubInitialPosition")
	delete(f, "MaxNumMessages")
	delete(f, "MaxNumBytes")
	delete(f, "Timeout")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ReceiveMessageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ReceiveMessageResponseParams struct {
	// Unique primary key used to identify the message
	MessageID *string `json:"MessageID,omitnil,omitempty" name:"MessageID"`

	// Content of the received message
	MessagePayload *string `json:"MessagePayload,omitnil,omitempty" name:"MessagePayload"`

	// Provided to the `Ack` API and used to acknowledge messages in the topic
	AckTopic *string `json:"AckTopic,omitnil,omitempty" name:"AckTopic"`

	// Returned error message. If it is null, it means there is no error.
	ErrorMsg *string `json:"ErrorMsg,omitnil,omitempty" name:"ErrorMsg"`

	// Returned subscriber names, used for creating Ack consumers
	SubName *string `json:"SubName,omitnil,omitempty" name:"SubName"`

	// BatchReceivePolicy specifies the messageids of multiple messages returned at one time, using '###' to distinguish different messageids.
	MessageIDList *string `json:"MessageIDList,omitnil,omitempty" name:"MessageIDList"`

	// BatchReceivePolicy specifies the message content of multiple messages returned at one time, using '###' to distinguish different message content.
	MessagesPayload *string `json:"MessagesPayload,omitnil,omitempty" name:"MessagesPayload"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ReceiveMessageResponse struct {
	*tchttp.BaseResponse
	Response *ReceiveMessageResponseParams `json:"Response"`
}

func (r *ReceiveMessageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ReceiveMessageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResetMsgSubOffsetByTimestampRequestParams struct {
	// Namespace name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscriber name.
	Subscription *string `json:"Subscription,omitnil,omitempty" name:"Subscription"`

	// Timestamp, accurate down to the millisecond.
	ToTimestamp *uint64 `json:"ToTimestamp,omitnil,omitempty" name:"ToTimestamp"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type ResetMsgSubOffsetByTimestampRequest struct {
	*tchttp.BaseRequest
	
	// Namespace name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscriber name.
	Subscription *string `json:"Subscription,omitnil,omitempty" name:"Subscription"`

	// Timestamp, accurate down to the millisecond.
	ToTimestamp *uint64 `json:"ToTimestamp,omitnil,omitempty" name:"ToTimestamp"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *ResetMsgSubOffsetByTimestampRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResetMsgSubOffsetByTimestampRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "Subscription")
	delete(f, "ToTimestamp")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ResetMsgSubOffsetByTimestampRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResetMsgSubOffsetByTimestampResponseParams struct {
	// Result.
	// Note: this field may return null, indicating that no valid values can be obtained.
	Result *bool `json:"Result,omitnil,omitempty" name:"Result"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ResetMsgSubOffsetByTimestampResponse struct {
	*tchttp.BaseResponse
	Response *ResetMsgSubOffsetByTimestampResponseParams `json:"Response"`
}

func (r *ResetMsgSubOffsetByTimestampResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResetMsgSubOffsetByTimestampResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResetRocketMQConsumerOffSetRequestParams struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Consumer group name.
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Reset method. 0: Start from the latest offset; 1: Start from specified time point.
	Type *uint64 `json:"Type,omitnil,omitempty" name:"Type"`

	// Topic name.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// The specified timestamp that has been reset, in milliseconds. This parameter only takes effect when the value of `Type` is `1`.
	ResetTimestamp *uint64 `json:"ResetTimestamp,omitnil,omitempty" name:"ResetTimestamp"`

	// Whether the reset flag is retry topic.
	RetryFlag *bool `json:"RetryFlag,omitnil,omitempty" name:"RetryFlag"`
}

type ResetRocketMQConsumerOffSetRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace name.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Consumer group name.
	GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Reset method. 0: Start from the latest offset; 1: Start from specified time point.
	Type *uint64 `json:"Type,omitnil,omitempty" name:"Type"`

	// Topic name.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// The specified timestamp that has been reset, in milliseconds. This parameter only takes effect when the value of `Type` is `1`.
	ResetTimestamp *uint64 `json:"ResetTimestamp,omitnil,omitempty" name:"ResetTimestamp"`

	// Whether the reset flag is retry topic.
	RetryFlag *bool `json:"RetryFlag,omitnil,omitempty" name:"RetryFlag"`
}

func (r *ResetRocketMQConsumerOffSetRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResetRocketMQConsumerOffSetRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "GroupId")
	delete(f, "Type")
	delete(f, "Topic")
	delete(f, "ResetTimestamp")
	delete(f, "RetryFlag")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ResetRocketMQConsumerOffSetRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResetRocketMQConsumerOffSetResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ResetRocketMQConsumerOffSetResponse struct {
	*tchttp.BaseResponse
	Response *ResetRocketMQConsumerOffSetResponseParams `json:"Response"`
}

func (r *ResetRocketMQConsumerOffSetResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResetRocketMQConsumerOffSetResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type RetentionPolicy struct {
	// Message retention period
	TimeInMinutes *int64 `json:"TimeInMinutes,omitnil,omitempty" name:"TimeInMinutes"`

	// Message retention size
	SizeInMB *int64 `json:"SizeInMB,omitnil,omitempty" name:"SizeInMB"`
}

// Predefined struct for user
type RetryRocketMQDlqMessageRequestParams struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Specifies the namespace name.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Group Name
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// Dead Letter Message ID
	MessageIds []*string `json:"MessageIds,omitnil,omitempty" name:"MessageIds"`
}

type RetryRocketMQDlqMessageRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Specifies the namespace name.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Group Name
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// Dead Letter Message ID
	MessageIds []*string `json:"MessageIds,omitnil,omitempty" name:"MessageIds"`
}

func (r *RetryRocketMQDlqMessageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RetryRocketMQDlqMessageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "GroupName")
	delete(f, "MessageIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "RetryRocketMQDlqMessageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type RetryRocketMQDlqMessageResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type RetryRocketMQDlqMessageResponse struct {
	*tchttp.BaseResponse
	Response *RetryRocketMQDlqMessageResponseParams `json:"Response"`
}

func (r *RetryRocketMQDlqMessageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RetryRocketMQDlqMessageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type RewindCmqQueueRequestParams struct {
	// Queue name, unique under the same account in a single region. queue name is a string of no more than 64 characters, beginning with a letter, the rest may contain letters, digits, and hyphens (-).
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// After this time is configured, the `(Batch)receiveMessage` API will consume the messages received after this timestamp in the order in which they are produced.
	StartConsumeTime *uint64 `json:"StartConsumeTime,omitnil,omitempty" name:"StartConsumeTime"`
}

type RewindCmqQueueRequest struct {
	*tchttp.BaseRequest
	
	// Queue name, unique under the same account in a single region. queue name is a string of no more than 64 characters, beginning with a letter, the rest may contain letters, digits, and hyphens (-).
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// After this time is configured, the `(Batch)receiveMessage` API will consume the messages received after this timestamp in the order in which they are produced.
	StartConsumeTime *uint64 `json:"StartConsumeTime,omitnil,omitempty" name:"StartConsumeTime"`
}

func (r *RewindCmqQueueRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RewindCmqQueueRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "QueueName")
	delete(f, "StartConsumeTime")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "RewindCmqQueueRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type RewindCmqQueueResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type RewindCmqQueueResponse struct {
	*tchttp.BaseResponse
	Response *RewindCmqQueueResponseParams `json:"Response"`
}

func (r *RewindCmqQueueResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RewindCmqQueueResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type RocketMQClusterConfig struct {
	// Upper limit of TPS per single namespace.
	//
	// Deprecated: MaxTpsPerNamespace is deprecated.
	MaxTpsPerNamespace *uint64 `json:"MaxTpsPerNamespace,omitnil,omitempty" name:"MaxTpsPerNamespace"`

	// Maximum number of namespaces
	MaxNamespaceNum *uint64 `json:"MaxNamespaceNum,omitnil,omitempty" name:"MaxNamespaceNum"`

	// Number of used namespaces
	UsedNamespaceNum *uint64 `json:"UsedNamespaceNum,omitnil,omitempty" name:"UsedNamespaceNum"`

	// Maximum number of topics
	MaxTopicNum *uint64 `json:"MaxTopicNum,omitnil,omitempty" name:"MaxTopicNum"`

	// Number of used topics
	UsedTopicNum *uint64 `json:"UsedTopicNum,omitnil,omitempty" name:"UsedTopicNum"`

	// Maximum number of groups
	MaxGroupNum *uint64 `json:"MaxGroupNum,omitnil,omitempty" name:"MaxGroupNum"`

	// Number of used groups
	UsedGroupNum *uint64 `json:"UsedGroupNum,omitnil,omitempty" name:"UsedGroupNum"`

	// Maximum message retention period in milliseconds
	MaxRetentionTime *uint64 `json:"MaxRetentionTime,omitnil,omitempty" name:"MaxRetentionTime"`

	// Maximum message delay in milliseconds
	MaxLatencyTime *uint64 `json:"MaxLatencyTime,omitnil,omitempty" name:"MaxLatencyTime"`

	// The maximum number of queues in a single topic
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxQueuesPerTopic *uint64 `json:"MaxQueuesPerTopic,omitnil,omitempty" name:"MaxQueuesPerTopic"`

	// Topic distribution.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicDistribution []*RocketMQTopicDistribution `json:"TopicDistribution,omitnil,omitempty" name:"TopicDistribution"`

	// Maximum number of roles.
	MaxRoleNum *int64 `json:"MaxRoleNum,omitnil,omitempty" name:"MaxRoleNum"`

	// TPS quota.
	MaxTpsLimit *int64 `json:"MaxTpsLimit,omitnil,omitempty" name:"MaxTpsLimit"`
}

type RocketMQClusterDetail struct {
	// Basic cluster information.
	Info *RocketMQClusterInfo `json:"Info,omitnil,omitempty" name:"Info"`

	// Cluster configuration information.
	Config *RocketMQClusterConfig `json:"Config,omitnil,omitempty" name:"Config"`

	// Cluster status. 0: Creating; 1: Normal; 2: Terminating; 3: Deleted; 4. Isolated; 5. Creation failed; 6: Deletion failed.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
}

type RocketMQClusterInfo struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Cluster name
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Region information
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

	// Creation time in milliseconds
	CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Cluster remarks
	// Note: this field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Public network access address
	PublicEndPoint *string `json:"PublicEndPoint,omitnil,omitempty" name:"PublicEndPoint"`

	// VPC access address
	VpcEndPoint *string `json:"VpcEndPoint,omitnil,omitempty" name:"VpcEndPoint"`

	// Whether the namespace access point is supported.
	// Note: This field may return `null`, indicating that no valid values can be obtained.
	SupportNamespaceEndpoint *bool `json:"SupportNamespaceEndpoint,omitnil,omitempty" name:"SupportNamespaceEndpoint"`

	// VPC Information
	// Note: This field may return null, indicating that no valid values can be obtained.
	Vpcs []*VpcConfig `json:"Vpcs,omitnil,omitempty" name:"Vpcs"`

	// Whether it is an exclusive instance
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsVip *bool `json:"IsVip,omitnil,omitempty" name:"IsVip"`

	// TDMQ for RocketMQ cluster type flag
	// Note: This field may return null, indicating that no valid values can be obtained.
	RocketMQFlag *bool `json:"RocketMQFlag,omitnil,omitempty" name:"RocketMQFlag"`

	// Billing status (`1`: Normal; `2`: Service suspended; `3`: Terminated)
	// Note: This field may return null, indicating that no valid values can be obtained.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Service suspension time in milliseconds
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsolateTime *int64 `json:"IsolateTime,omitnil,omitempty" name:"IsolateTime"`

	// HTTP-based public network access address
	// Note: This field may return null, indicating that no valid values can be obtained.
	HttpPublicEndpoint *string `json:"HttpPublicEndpoint,omitnil,omitempty" name:"HttpPublicEndpoint"`

	// HTTP-based VPC access address
	// Note: This field may return null, indicating that no valid values can be obtained.
	HttpVpcEndpoint *string `json:"HttpVpcEndpoint,omitnil,omitempty" name:"HttpVpcEndpoint"`

	// Internal TCP access address
	// Note: This field may return null, indicating that no valid values can be obtained.
	InternalEndpoint *string `json:"InternalEndpoint,omitnil,omitempty" name:"InternalEndpoint"`

	// Internal HTTP access address
	// Note: This field may return null, indicating that no valid values can be obtained.
	HttpInternalEndpoint *string `json:"HttpInternalEndpoint,omitnil,omitempty" name:"HttpInternalEndpoint"`

	// Whether to enable ACL authentication. For Exclusive Edition instances, ACL authentication can be disabled.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AclEnabled *bool `json:"AclEnabled,omitnil,omitempty" name:"AclEnabled"`

	// Public network CLB instance ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	PublicClbId *string `json:"PublicClbId,omitnil,omitempty" name:"PublicClbId"`

	// vip
	// Note: This field may return null, indicating that no valid values can be obtained.
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`

	// Specifies the VPC it belongs to.
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Whether migration is supported.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SupportMigration *bool `json:"SupportMigration,omitnil,omitempty" name:"SupportMigration"`

	// Instance status:
	// 0: Creating
	// 1: Normal
	// 2: Isolating
	// 3: Destroyed
	// 4: Abnormal
	// 5: Deliver failed
	// 6: Changing the configuration
	// 7: Configuration change failed
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceStatus *int64 `json:"InstanceStatus,omitnil,omitempty" name:"InstanceStatus"`

	// Indicates the AZ to which the cluster belongs.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// The AZ where the cluster nodes are located. If the cluster is a cross-AZ cluster, it includes multiple AZs where the cluster nodes are located.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"`

	// Whether it is frozen.
	IsFrozen *bool `json:"IsFrozen,omitnil,omitempty" name:"IsFrozen"`

	// Whether to enable automatic topic creation.
	AutoCreateTopicEnabled *bool `json:"AutoCreateTopicEnabled,omitnil,omitempty" name:"AutoCreateTopicEnabled"`

	// Whether to enable the admin feature of the cluster.
	AdminFeatureEnabled *bool `json:"AdminFeatureEnabled,omitnil,omitempty" name:"AdminFeatureEnabled"`

	// Admin AK
	// Note: This field may return null, indicating that no valid values can be obtained.
	AdminAccessKey *string `json:"AdminAccessKey,omitnil,omitempty" name:"AdminAccessKey"`

	// Admin SK
	// Note: This field may return null, indicating that no valid values can be obtained.
	AdminSecretKey *string `json:"AdminSecretKey,omitnil,omitempty" name:"AdminSecretKey"`

	// Whether to enable deletion protection
	EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"`
}

type RocketMQClusterRecentStats struct {
	// Number of topics
	TopicNum *uint64 `json:"TopicNum,omitnil,omitempty" name:"TopicNum"`

	// Number of produced messages
	ProducedMsgNum *uint64 `json:"ProducedMsgNum,omitnil,omitempty" name:"ProducedMsgNum"`

	// Number of consumed messages
	ConsumedMsgNum *uint64 `json:"ConsumedMsgNum,omitnil,omitempty" name:"ConsumedMsgNum"`

	// Number of retained messages
	AccumulativeMsgNum *uint64 `json:"AccumulativeMsgNum,omitnil,omitempty" name:"AccumulativeMsgNum"`
}

type RocketMQDataPoint struct {
	// Monitoring value array, which corresponds one-to-one with Timestamps
	// Note: This field may return null, indicating that no valid values can be obtained.
	Timestamps []*int64 `json:"Timestamps,omitnil,omitempty" name:"Timestamps"`

	// Monitoring data point position. For example, a day is divided into 1,440 points per minute, with each point having a serial number between 0 and 1439. If a certain serial number is not in the array, it indicates a missing data point.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Values []*float64 `json:"Values,omitnil,omitempty" name:"Values"`
}

type RocketMQGroup struct {
	// Consumer group name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// The number of online consumers.
	ConsumerNum *uint64 `json:"ConsumerNum,omitnil,omitempty" name:"ConsumerNum"`

	// Consumption TPS.
	//
	// Deprecated: TPS is deprecated.
	TPS *uint64 `json:"TPS,omitnil,omitempty" name:"TPS"`

	// The total number of heaped messages.
	//
	// Deprecated: TotalAccumulative is deprecated.
	TotalAccumulative *int64 `json:"TotalAccumulative,omitnil,omitempty" name:"TotalAccumulative"`

	// 0: Cluster consumption mode; 1: Broadcast consumption mode; -1: Unknown.
	ConsumptionMode *int64 `json:"ConsumptionMode,omitnil,omitempty" name:"ConsumptionMode"`

	// Whether to allow consumption.
	ReadEnabled *bool `json:"ReadEnabled,omitnil,omitempty" name:"ReadEnabled"`

	// The number of partitions in a retry topic.
	// Note: This field may return null, indicating that no valid values can be obtained.
	RetryPartitionNum *uint64 `json:"RetryPartitionNum,omitnil,omitempty" name:"RetryPartitionNum"`

	// Creation time in milliseconds.
	CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Modification time in milliseconds.
	UpdateTime *uint64 `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Client protocol.
	ClientProtocol *string `json:"ClientProtocol,omitnil,omitempty" name:"ClientProtocol"`

	// Description.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Consumer type. Enumerated values: `ACTIVELY` or `PASSIVELY`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerType *string `json:"ConsumerType,omitnil,omitempty" name:"ConsumerType"`

	// Whether to enable broadcast consumption.
	BroadcastEnabled *bool `json:"BroadcastEnabled,omitnil,omitempty" name:"BroadcastEnabled"`

	// Group type
	// Note: This field may return null, indicating that no valid values can be obtained.
	GroupType *string `json:"GroupType,omitnil,omitempty" name:"GroupType"`

	// The number of retries
	// Note: This field may return null, indicating that no valid values can be obtained.
	RetryMaxTimes *uint64 `json:"RetryMaxTimes,omitnil,omitempty" name:"RetryMaxTimes"`

	// Instance ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Namespace
	// Note: This field may return null, indicating that no valid values can be obtained.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Number of subscribed topics.
	SubscribeTopicNum *int64 `json:"SubscribeTopicNum,omitnil,omitempty" name:"SubscribeTopicNum"`

	// List of bound tags
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`
}

type RocketMQInstanceConfig struct {
	// Maximum TPS per namespace
	MaxTpsPerNamespace *uint64 `json:"MaxTpsPerNamespace,omitnil,omitempty" name:"MaxTpsPerNamespace"`

	// Maximum number of namespaces
	MaxNamespaceNum *uint64 `json:"MaxNamespaceNum,omitnil,omitempty" name:"MaxNamespaceNum"`

	// Number of used namespaces
	UsedNamespaceNum *uint64 `json:"UsedNamespaceNum,omitnil,omitempty" name:"UsedNamespaceNum"`

	// Maximum number of topics
	MaxTopicNum *uint64 `json:"MaxTopicNum,omitnil,omitempty" name:"MaxTopicNum"`

	// Number of used topics
	UsedTopicNum *uint64 `json:"UsedTopicNum,omitnil,omitempty" name:"UsedTopicNum"`

	// Maximum number of groups
	MaxGroupNum *uint64 `json:"MaxGroupNum,omitnil,omitempty" name:"MaxGroupNum"`

	// Number of used groups
	UsedGroupNum *uint64 `json:"UsedGroupNum,omitnil,omitempty" name:"UsedGroupNum"`

	// Cluster type
	ConfigDisplay *string `json:"ConfigDisplay,omitnil,omitempty" name:"ConfigDisplay"`

	// Number of nodes in the cluster
	NodeCount *uint64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// Node distribution
	NodeDistribution []*InstanceNodeDistribution `json:"NodeDistribution,omitnil,omitempty" name:"NodeDistribution"`

	// Topic distribution
	TopicDistribution []*RocketMQTopicDistribution `json:"TopicDistribution,omitnil,omitempty" name:"TopicDistribution"`


	MaxQueuesPerTopic *uint64 `json:"MaxQueuesPerTopic,omitnil,omitempty" name:"MaxQueuesPerTopic"`

	// Maximum configurable message retention time, in hours	
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxRetention *int64 `json:"MaxRetention,omitnil,omitempty" name:"MaxRetention"`

	// Minimum configurable message retention time, in hours
	// Note: This field may return null, indicating that no valid values can be obtained.
	MinRetention *int64 `json:"MinRetention,omitnil,omitempty" name:"MinRetention"`

	// Instance message retention time, in hours
	// Note: This field may return null, indicating that no valid values can be obtained.
	Retention *int64 `json:"Retention,omitnil,omitempty" name:"Retention"`

	// Minimum quota for the number of topics, which is the free quota. The default number is the minimum quota per node in the cluster specification multiplied by the number of nodes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicNumLowerLimit *int64 `json:"TopicNumLowerLimit,omitnil,omitempty" name:"TopicNumLowerLimit"`

	// Maximum quota for the number of topics. The default number is the maximum quota per node in the cluster specification multiplied by the number of nodes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicNumUpperLimit *int64 `json:"TopicNumUpperLimit,omitnil,omitempty" name:"TopicNumUpperLimit"`

	// Controls the TPS ratio for producing and consuming messages. Value range: 0–1. Default value: 0.5.
	SendReceiveRatio *float64 `json:"SendReceiveRatio,omitnil,omitempty" name:"SendReceiveRatio"`
}

type RocketMQMessageTrack struct {
	// Consumer group
	Group *string `json:"Group,omitnil,omitempty" name:"Group"`

	// Consumption status.
	// CONSUMED.
	// CONSUMED BUT FILTERED.
	// NOT_CONSUME: specifies unconsumed.
	// ENTER_RETRY: specifies whether to enter the retry queue.
	// ENTER_DLQ: specifies whether the message enters the dead letter queue.
	// Consumption status UNKNOWN.
	ConsumeStatus *string `json:"ConsumeStatus,omitnil,omitempty" name:"ConsumeStatus"`

	// Message trace type
	TrackType *string `json:"TrackType,omitnil,omitempty" name:"TrackType"`

	// Exception information
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExceptionDesc *string `json:"ExceptionDesc,omitnil,omitempty" name:"ExceptionDesc"`
}

type RocketMQMsgLog struct {
	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// Message tag
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgTag *string `json:"MsgTag,omitnil,omitempty" name:"MsgTag"`

	// Message key.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgKey *string `json:"MsgKey,omitnil,omitempty" name:"MsgKey"`

	// Specifies the client ip address.
	ProducerAddr *string `json:"ProducerAddr,omitnil,omitempty" name:"ProducerAddr"`

	// Message Sending Time
	ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"`

	// Pulsar Message ID
	PulsarMsgId *string `json:"PulsarMsgId,omitnil,omitempty" name:"PulsarMsgId"`

	// Dead-letter resend count
	// Note: This field may return null, indicating that no valid values can be obtained.
	DeadLetterResendTimes *int64 `json:"DeadLetterResendTimes,omitnil,omitempty" name:"DeadLetterResendTimes"`

	// Dead Letter Resend Success Count
	// Note: This field may return null, indicating that no valid values can be obtained.
	ResendSuccessCount *int64 `json:"ResendSuccessCount,omitnil,omitempty" name:"ResendSuccessCount"`
}

type RocketMQNamespace struct {
	// Namespace name, which can contain 3 - 64 letters, digits, hyphens, and underscores.
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Retention period for unconsumed messages in milliseconds. Valid range: 60 seconds - 15 days. This parameter is disused.
	Ttl *uint64 `json:"Ttl,omitnil,omitempty" name:"Ttl"`

	// Retention period for persistently stored messages in milliseconds.
	RetentionTime *uint64 `json:"RetentionTime,omitnil,omitempty" name:"RetentionTime"`

	// Description.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Public network access point address.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PublicEndpoint *string `json:"PublicEndpoint,omitnil,omitempty" name:"PublicEndpoint"`

	// VPC access point address.
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcEndpoint *string `json:"VpcEndpoint,omitnil,omitempty" name:"VpcEndpoint"`

	// Internal access point address
	// Note: This field may return null, indicating that no valid values can be obtained.
	InternalEndpoint *string `json:"InternalEndpoint,omitnil,omitempty" name:"InternalEndpoint"`
}

type RocketMQSubscription struct {
	// Topic name
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Topic type.
	// Normal.
	// GlobalOrder specifies the global sequential order.
	// Partitionally sequential.
	// Transactional message.
	// DelayScheduled specifies the delayed message.
	// Retry.
	// DeadLetter. specifies the dead letter.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Number of partitions
	// Note: This field may return null, indicating that no valid values can be obtained.
	PartitionNum *int64 `json:"PartitionNum,omitnil,omitempty" name:"PartitionNum"`

	// Filter mode, which can be TAG or SQL.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpressionType *string `json:"ExpressionType,omitnil,omitempty" name:"ExpressionType"`

	// Filter expression.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubString *string `json:"SubString,omitnil,omitempty" name:"SubString"`

	// Subscription status:.
	// Consistent subscription relationship.
	// Inconsistent subscription relationship.
	// 2. unknown.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Number of heaped consumer groups.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerLag *int64 `json:"ConsumerLag,omitnil,omitempty" name:"ConsumerLag"`

	// Instance ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Specifies the consumer group name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"`

	// Online status
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsOnline *bool `json:"IsOnline,omitnil,omitempty" name:"IsOnline"`

	// Consumption type.
	// Broadcast consumption.
	// Specifies the cluster consumption.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumeType *int64 `json:"ConsumeType,omitnil,omitempty" name:"ConsumeType"`

	// Subscription consistency.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Consistency *int64 `json:"Consistency,omitnil,omitempty" name:"Consistency"`

	// Last consumption progress update time, in seconds
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastUpdateTime *int64 `json:"LastUpdateTime,omitnil,omitempty" name:"LastUpdateTime"`

	// Maximum number of retries.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxRetryTimes *int64 `json:"MaxRetryTimes,omitnil,omitempty" name:"MaxRetryTimes"`

	// Protocol type.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientProtocol *string `json:"ClientProtocol,omitnil,omitempty" name:"ClientProtocol"`

	// Client subscription details.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientSubscriptionInfos []*ClientSubscriptionInfo `json:"ClientSubscriptionInfos,omitnil,omitempty" name:"ClientSubscriptionInfos"`
}

type RocketMQTopic struct {
	// Topic name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Topic type. Enumerated values: `Normal`, `GlobalOrder`, `PartitionedOrder`, `Transaction`, `Retry`, and `DeadLetter`.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// The number of subscription groups
	GroupNum *uint64 `json:"GroupNum,omitnil,omitempty" name:"GroupNum"`

	// Description.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// The number of read/write partitions.
	PartitionNum *uint64 `json:"PartitionNum,omitnil,omitempty" name:"PartitionNum"`

	// Creation time in milliseconds.
	CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Creation time in milliseconds.
	UpdateTime *uint64 `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Instance ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Namespace
	// Note: This field may return null, indicating that no valid values can be obtained.
	Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"`

	// Last write time, in seconds.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastUpdateTime *int64 `json:"LastUpdateTime,omitnil,omitempty" name:"LastUpdateTime"`

	// Number of Subscriptions
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubscriptionCount *int64 `json:"SubscriptionCount,omitnil,omitempty" name:"SubscriptionCount"`

	// Subscribe to the relationship list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubscriptionData []*RocketMQSubscription `json:"SubscriptionData,omitnil,omitempty" name:"SubscriptionData"`

	// List of bound tags
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`
}

type RocketMQTopicDistribution struct {
	// Topic type
	TopicType *string `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// Number of topics
	Count *uint64 `json:"Count,omitnil,omitempty" name:"Count"`
}

type RocketMQVipInstance struct {
	// Instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Instance version.
	InstanceVersion *string `json:"InstanceVersion,omitnil,omitempty" name:"InstanceVersion"`

	// Instance status. Valid values: `0` (Creating), `1` (Normal), `2` (Isolated), `3` (Terminated), `4` (Abnormal), `5` (Delivery failed).
	Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Number of nodes
	NodeCount *uint64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`

	// Instance specification name
	ConfigDisplay *string `json:"ConfigDisplay,omitnil,omitempty" name:"ConfigDisplay"`

	// Peak TPS
	MaxTps *uint64 `json:"MaxTps,omitnil,omitempty" name:"MaxTps"`

	// Peak bandwidth in Mbps
	MaxBandWidth *uint64 `json:"MaxBandWidth,omitnil,omitempty" name:"MaxBandWidth"`

	// Storage capacity in GB
	MaxStorage *uint64 `json:"MaxStorage,omitnil,omitempty" name:"MaxStorage"`

	// Instance expiration time in milliseconds
	ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Renewal mode. Valid values: `0` (Manual renewal, which is the default mode), `1` (Auto-renewal), `2` (Manual renewal, which is specified by users).
	AutoRenewFlag *uint64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Payment mode. 0: Postpaid; 1: Prepaid.
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Instance specification ID
	SpecName *string `json:"SpecName,omitnil,omitempty" name:"SpecName"`

	// Maximum configurable message retention time, in hours
	MaxRetention *int64 `json:"MaxRetention,omitnil,omitempty" name:"MaxRetention"`

	// Minimum configurable message retention time, in hours
	MinRetention *int64 `json:"MinRetention,omitnil,omitempty" name:"MinRetention"`

	// Instance message retention time, in hours
	Retention *int64 `json:"Retention,omitnil,omitempty" name:"Retention"`

	// Whether to enable ACL authentication.
	AclEnabled *bool `json:"AclEnabled,omitnil,omitempty" name:"AclEnabled"`

	// Destruction time.
	DestroyTime *uint64 `json:"DestroyTime,omitnil,omitempty" name:"DestroyTime"`
}

type Role struct {
	// Role name.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Value of the role token.
	Token *string `json:"Token,omitnil,omitempty" name:"Token"`

	// Remarks.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Update time.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Authorization type (Cluster: cluster; TopicAndGroup: topic or consumer group).
	PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"`
}

type SecurityPolicy struct {
	// ip or subnet.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Route *string `json:"Route,omitnil,omitempty" name:"Route"`

	// Specifies whether the policy allows (true) or denies (false) access, corresponding to the allowlist or blocklist.
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Policy *bool `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Remarks.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

// Predefined struct for user
type SendBatchMessagesRequestParams struct {
	// Name of the topic to which to send the message. It is better to be the full path of the topic, such as `tenant/namespace/topic`. If it is not specified, `public/default` will be used by default.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Content of the message to be sent
	Payload *string `json:"Payload,omitnil,omitempty" name:"Payload"`

	// String-Type token, which is optional and will be automatically obtained by the system.
	StringToken *string `json:"StringToken,omitnil,omitempty" name:"StringToken"`

	// Producer name, which must be globally unique. If it is not configured, the system will automatically generate one.
	ProducerName *string `json:"ProducerName,omitnil,omitempty" name:"ProducerName"`

	// Message sending timeout period in seconds. Default value: 30s
	SendTimeout *int64 `json:"SendTimeout,omitnil,omitempty" name:"SendTimeout"`

	// Maximum number of produced messages which can be cached in the memory. Default value: 1000
	MaxPendingMessages *int64 `json:"MaxPendingMessages,omitnil,omitempty" name:"MaxPendingMessages"`

	// Maximum number of messages in each batch. Default value: 1000 messages/batch
	BatchingMaxMessages *int64 `json:"BatchingMaxMessages,omitnil,omitempty" name:"BatchingMaxMessages"`

	// Maximum wait time for each batch, after which the batch will be sent no matter whether the specified number or size of messages in the batch is reached. Default value: 10 ms
	BatchingMaxPublishDelay *int64 `json:"BatchingMaxPublishDelay,omitnil,omitempty" name:"BatchingMaxPublishDelay"`

	// Maximum allowed size of messages in each batch. Default value: 128 KB
	BatchingMaxBytes *int64 `json:"BatchingMaxBytes,omitnil,omitempty" name:"BatchingMaxBytes"`
}

type SendBatchMessagesRequest struct {
	*tchttp.BaseRequest
	
	// Name of the topic to which to send the message. It is better to be the full path of the topic, such as `tenant/namespace/topic`. If it is not specified, `public/default` will be used by default.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Content of the message to be sent
	Payload *string `json:"Payload,omitnil,omitempty" name:"Payload"`

	// String-Type token, which is optional and will be automatically obtained by the system.
	StringToken *string `json:"StringToken,omitnil,omitempty" name:"StringToken"`

	// Producer name, which must be globally unique. If it is not configured, the system will automatically generate one.
	ProducerName *string `json:"ProducerName,omitnil,omitempty" name:"ProducerName"`

	// Message sending timeout period in seconds. Default value: 30s
	SendTimeout *int64 `json:"SendTimeout,omitnil,omitempty" name:"SendTimeout"`

	// Maximum number of produced messages which can be cached in the memory. Default value: 1000
	MaxPendingMessages *int64 `json:"MaxPendingMessages,omitnil,omitempty" name:"MaxPendingMessages"`

	// Maximum number of messages in each batch. Default value: 1000 messages/batch
	BatchingMaxMessages *int64 `json:"BatchingMaxMessages,omitnil,omitempty" name:"BatchingMaxMessages"`

	// Maximum wait time for each batch, after which the batch will be sent no matter whether the specified number or size of messages in the batch is reached. Default value: 10 ms
	BatchingMaxPublishDelay *int64 `json:"BatchingMaxPublishDelay,omitnil,omitempty" name:"BatchingMaxPublishDelay"`

	// Maximum allowed size of messages in each batch. Default value: 128 KB
	BatchingMaxBytes *int64 `json:"BatchingMaxBytes,omitnil,omitempty" name:"BatchingMaxBytes"`
}

func (r *SendBatchMessagesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendBatchMessagesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Topic")
	delete(f, "Payload")
	delete(f, "StringToken")
	delete(f, "ProducerName")
	delete(f, "SendTimeout")
	delete(f, "MaxPendingMessages")
	delete(f, "BatchingMaxMessages")
	delete(f, "BatchingMaxPublishDelay")
	delete(f, "BatchingMaxBytes")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SendBatchMessagesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendBatchMessagesResponseParams struct {
	// Unique message ID
	// Note: this field may return null, indicating that no valid values can be obtained.
	MessageId *string `json:"MessageId,omitnil,omitempty" name:"MessageId"`

	// Error message. If an empty string is returned, no error occurred.
	// Note: this field may return null, indicating that no valid values can be obtained.
	ErrorMsg *string `json:"ErrorMsg,omitnil,omitempty" name:"ErrorMsg"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type SendBatchMessagesResponse struct {
	*tchttp.BaseResponse
	Response *SendBatchMessagesResponseParams `json:"Response"`
}

func (r *SendBatchMessagesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendBatchMessagesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendCmqMsgRequestParams struct {
	// Queue name
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Message content
	MsgContent *string `json:"MsgContent,omitnil,omitempty" name:"MsgContent"`

	// Delay time. expressed in seconds, default value is 0, cannot exceed the max message unacknowledgement time in queue configuration.
	DelaySeconds *int64 `json:"DelaySeconds,omitnil,omitempty" name:"DelaySeconds"`
}

type SendCmqMsgRequest struct {
	*tchttp.BaseRequest
	
	// Queue name
	QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"`

	// Message content
	MsgContent *string `json:"MsgContent,omitnil,omitempty" name:"MsgContent"`

	// Delay time. expressed in seconds, default value is 0, cannot exceed the max message unacknowledgement time in queue configuration.
	DelaySeconds *int64 `json:"DelaySeconds,omitnil,omitempty" name:"DelaySeconds"`
}

func (r *SendCmqMsgRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendCmqMsgRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "QueueName")
	delete(f, "MsgContent")
	delete(f, "DelaySeconds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SendCmqMsgRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendCmqMsgResponseParams struct {
	// `true` indicates that the sending is successful
	Result *bool `json:"Result,omitnil,omitempty" name:"Result"`

	// Message ID
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type SendCmqMsgResponse struct {
	*tchttp.BaseResponse
	Response *SendCmqMsgResponseParams `json:"Response"`
}

func (r *SendCmqMsgResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendCmqMsgResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendMessagesRequestParams struct {
	// Name of the topic to which to send the message. It is better to be the full path of the topic, such as `tenant/namespace/topic`. If it is not specified, `public/default` will be used by default.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Content of the message to be sent
	Payload *string `json:"Payload,omitnil,omitempty" name:"Payload"`

	// Token used for authentication, which is optional and will be automatically obtained by the system.
	StringToken *string `json:"StringToken,omitnil,omitempty" name:"StringToken"`

	// Producer name, which is randomly generated and must be globally unique. If you set the producer name manually, the producer may fail to be created, causing message sending failure.
	// This parameter is used only when a specific producer is allowed to produce messages. It won’t be used in most cases.
	ProducerName *string `json:"ProducerName,omitnil,omitempty" name:"ProducerName"`

	// Message sending timeout period, which is 30s by default.
	SendTimeout *int64 `json:"SendTimeout,omitnil,omitempty" name:"SendTimeout"`

	// Maximum number of produced messages which can be cached in the memory. Default value: 1000
	MaxPendingMessages *int64 `json:"MaxPendingMessages,omitnil,omitempty" name:"MaxPendingMessages"`
}

type SendMessagesRequest struct {
	*tchttp.BaseRequest
	
	// Name of the topic to which to send the message. It is better to be the full path of the topic, such as `tenant/namespace/topic`. If it is not specified, `public/default` will be used by default.
	Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"`

	// Content of the message to be sent
	Payload *string `json:"Payload,omitnil,omitempty" name:"Payload"`

	// Token used for authentication, which is optional and will be automatically obtained by the system.
	StringToken *string `json:"StringToken,omitnil,omitempty" name:"StringToken"`

	// Producer name, which is randomly generated and must be globally unique. If you set the producer name manually, the producer may fail to be created, causing message sending failure.
	// This parameter is used only when a specific producer is allowed to produce messages. It won’t be used in most cases.
	ProducerName *string `json:"ProducerName,omitnil,omitempty" name:"ProducerName"`

	// Message sending timeout period, which is 30s by default.
	SendTimeout *int64 `json:"SendTimeout,omitnil,omitempty" name:"SendTimeout"`

	// Maximum number of produced messages which can be cached in the memory. Default value: 1000
	MaxPendingMessages *int64 `json:"MaxPendingMessages,omitnil,omitempty" name:"MaxPendingMessages"`
}

func (r *SendMessagesRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendMessagesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Topic")
	delete(f, "Payload")
	delete(f, "StringToken")
	delete(f, "ProducerName")
	delete(f, "SendTimeout")
	delete(f, "MaxPendingMessages")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SendMessagesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendMessagesResponseParams struct {
	// The messageID of the message is globally unique and is used to identify the message's metadata information.
	MessageId *string `json:"MessageId,omitnil,omitempty" name:"MessageId"`

	// Returned error message. If returned as "", it means there is no error.
	ErrorMsg *string `json:"ErrorMsg,omitnil,omitempty" name:"ErrorMsg"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type SendMessagesResponse struct {
	*tchttp.BaseResponse
	Response *SendMessagesResponseParams `json:"Response"`
}

func (r *SendMessagesResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendMessagesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendMsgRequestParams struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name. If the topic is a partitioned topic, you need to specify the partition; otherwise, messages will be sent to partition 0 by default, such as `my_topic-partition-0`.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message content, which cannot be empty and can contain up to 5,242,880 bytes.
	MsgContent *string `json:"MsgContent,omitnil,omitempty" name:"MsgContent"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

type SendMsgRequest struct {
	*tchttp.BaseRequest
	
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name. If the topic is a partitioned topic, you need to specify the partition; otherwise, messages will be sent to partition 0 by default, such as `my_topic-partition-0`.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message content, which cannot be empty and can contain up to 5,242,880 bytes.
	MsgContent *string `json:"MsgContent,omitnil,omitempty" name:"MsgContent"`

	// Pulsar cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`
}

func (r *SendMsgRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendMsgRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EnvironmentId")
	delete(f, "TopicName")
	delete(f, "MsgContent")
	delete(f, "ClusterId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SendMsgRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendMsgResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type SendMsgResponse struct {
	*tchttp.BaseResponse
	Response *SendMsgResponseParams `json:"Response"`
}

func (r *SendMsgResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendMsgResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendRocketMQMessageRequestParams struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace ID
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message content
	MsgBody *string `json:"MsgBody,omitnil,omitempty" name:"MsgBody"`

	// Message key
	MsgKey *string `json:"MsgKey,omitnil,omitempty" name:"MsgKey"`

	// Message tag
	MsgTag *string `json:"MsgTag,omitnil,omitempty" name:"MsgTag"`
}

type SendRocketMQMessageRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Namespace ID
	NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"`

	// Topic name
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Message content
	MsgBody *string `json:"MsgBody,omitnil,omitempty" name:"MsgBody"`

	// Message key
	MsgKey *string `json:"MsgKey,omitnil,omitempty" name:"MsgKey"`

	// Message tag
	MsgTag *string `json:"MsgTag,omitnil,omitempty" name:"MsgTag"`
}

func (r *SendRocketMQMessageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendRocketMQMessageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ClusterId")
	delete(f, "NamespaceId")
	delete(f, "TopicName")
	delete(f, "MsgBody")
	delete(f, "MsgKey")
	delete(f, "MsgTag")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SendRocketMQMessageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SendRocketMQMessageResponseParams struct {
	// Message sending result
	Result *bool `json:"Result,omitnil,omitempty" name:"Result"`

	// Message ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type SendRocketMQMessageResponse struct {
	*tchttp.BaseResponse
	Response *SendRocketMQMessageResponseParams `json:"Response"`
}

func (r *SendRocketMQMessageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SendRocketMQMessageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type ServerLog struct {
	// Storage time.
	SaveTime *string `json:"SaveTime,omitnil,omitempty" name:"SaveTime"`

	// Status.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`
}

// Predefined struct for user
type SetRocketMQPublicAccessPointRequestParams struct {
	// Cluster ID. Currently, the system only supports dedicated clusters.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Enable or Disable Access
	Enabled *bool `json:"Enabled,omitnil,omitempty" name:"Enabled"`

	// Bandwidth size, in Mbps. It must be specified when you enable or adjust the public network access.
	Bandwidth *uint64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Payment mode, which must be specified when you enabled the public network access. 0 means hourly billing, and 1 means annual and monthly subscription. Currently, only hourly billing is supported.
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Public network access security rule list, which must be provided when Enabled is true.
	Rules []*PublicAccessRule `json:"Rules,omitnil,omitempty" name:"Rules"`

	// Whether public network is billed by traffic.
	BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"`
}

type SetRocketMQPublicAccessPointRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID. Currently, the system only supports dedicated clusters.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Enable or Disable Access
	Enabled *bool `json:"Enabled,omitnil,omitempty" name:"Enabled"`

	// Bandwidth size, in Mbps. It must be specified when you enable or adjust the public network access.
	Bandwidth *uint64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// Payment mode, which must be specified when you enabled the public network access. 0 means hourly billing, and 1 means annual and monthly subscription. Currently, only hourly billing is supported.
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Public network access security rule list, which must be provided when Enabled is true.
	Rules []*PublicAccessRule `json:"Rules,omitnil,omitempty" name:"Rules"`

	// Whether public network is billed by traffic.
	BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"`
}

func (r *SetRocketMQPublicAccessPointRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SetRocketMQPublicAccessPointRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "Enabled")
	delete(f, "Bandwidth")
	delete(f, "PayMode")
	delete(f, "Rules")
	delete(f, "BillingFlow")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SetRocketMQPublicAccessPointRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SetRocketMQPublicAccessPointResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type SetRocketMQPublicAccessPointResponse struct {
	*tchttp.BaseResponse
	Response *SetRocketMQPublicAccessPointResponseParams `json:"Response"`
}

func (r *SetRocketMQPublicAccessPointResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SetRocketMQPublicAccessPointResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type Sort struct {
	// Sorting field.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Ascending order: `ASC`; descending order: `DESC`.
	Order *string `json:"Order,omitnil,omitempty" name:"Order"`
}

type Subscription struct {
	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// The time when the consumer started connecting.
	// Note: This field may return `null`, indicating that no valid values can be obtained.
	ConnectedSince *string `json:"ConnectedSince,omitnil,omitempty" name:"ConnectedSince"`

	// Consumer address.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerAddr *string `json:"ConsumerAddr,omitnil,omitempty" name:"ConsumerAddr"`

	// The number of consumers.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerCount *string `json:"ConsumerCount,omitnil,omitempty" name:"ConsumerCount"`

	// Consumer name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerName *string `json:"ConsumerName,omitnil,omitempty" name:"ConsumerName"`

	// The number of heaped messages.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgBacklog *string `json:"MsgBacklog,omitnil,omitempty" name:"MsgBacklog"`

	// Percentage of messages under this subscription that were discarded but not sent after TTL.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgRateExpired *string `json:"MsgRateExpired,omitnil,omitempty" name:"MsgRateExpired"`

	// The total number of messages delivered by the consumer per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgRateOut *string `json:"MsgRateOut,omitnil,omitempty" name:"MsgRateOut"`

	// The size (in bytes) of messages consumed by the consumer per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgThroughputOut *string `json:"MsgThroughputOut,omitnil,omitempty" name:"MsgThroughputOut"`

	// Subscription name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`

	// Set of consumers.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerSets []*Consumer `json:"ConsumerSets,omitnil,omitempty" name:"ConsumerSets"`

	// Whether the consumer is online.
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsOnline *bool `json:"IsOnline,omitnil,omitempty" name:"IsOnline"`

	// Set of consumption progress information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumersScheduleSets []*ConsumersSchedule `json:"ConsumersScheduleSets,omitnil,omitempty" name:"ConsumersScheduleSets"`

	// Remarks.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Creation time.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Last modified.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Subscription type. Valid values: `Exclusive`, `Shared`, `Failover`, and `Key_Shared`. An empty string or `NULL`: Unknown.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubType *string `json:"SubType,omitnil,omitempty" name:"SubType"`

	// Whether messages are blocked as the limit of unacknowledged messages has been reached.
	// Note: This field may return null, indicating that no valid values can be obtained.
	BlockedSubscriptionOnUnackedMsgs *bool `json:"BlockedSubscriptionOnUnackedMsgs,omitnil,omitempty" name:"BlockedSubscriptionOnUnackedMsgs"`

	// The maximum number of unacknowledged messages.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxUnackedMsgNum *int64 `json:"MaxUnackedMsgNum,omitnil,omitempty" name:"MaxUnackedMsgNum"`
}

type SubscriptionTopic struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Subscription name.
	SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"`
}

type Tag struct {
	// Tag key value
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"`

	// Tag's value
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagValue *string `json:"TagValue,omitnil,omitempty" name:"TagValue"`
}

type TagFilter struct {
	// Tag key name
	TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"`

	// Tag value list
	TagValues []*string `json:"TagValues,omitnil,omitempty" name:"TagValues"`
}

type Topic struct {
	// Average size of the messages published in the last interval in bytes.
	// Note: This field may return `null`, indicating that no valid values can be obtained.
	AverageMsgSize *string `json:"AverageMsgSize,omitnil,omitempty" name:"AverageMsgSize"`

	// The number of consumers.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerCount *string `json:"ConsumerCount,omitnil,omitempty" name:"ConsumerCount"`

	// The total number of recorded messages.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastConfirmedEntry *string `json:"LastConfirmedEntry,omitnil,omitempty" name:"LastConfirmedEntry"`

	// Time when the last ledger was created.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastLedgerCreatedTimestamp *string `json:"LastLedgerCreatedTimestamp,omitnil,omitempty" name:"LastLedgerCreatedTimestamp"`

	// The number of messages published by local and replicated publishers per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgRateIn *string `json:"MsgRateIn,omitnil,omitempty" name:"MsgRateIn"`

	// The total number of messages delivered by local and replicated consumers per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgRateOut *string `json:"MsgRateOut,omitnil,omitempty" name:"MsgRateOut"`

	// The size (in bytes) of messages published by local and replicated publishers per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgThroughputIn *string `json:"MsgThroughputIn,omitnil,omitempty" name:"MsgThroughputIn"`

	// The size (in bytes) of messages delivered by local and replicated consumers per second.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgThroughputOut *string `json:"MsgThroughputOut,omitnil,omitempty" name:"MsgThroughputOut"`

	// The total number of recorded messages.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NumberOfEntries *string `json:"NumberOfEntries,omitnil,omitempty" name:"NumberOfEntries"`

	// Partition count ≤ 0: there are no subpartitions in the topic.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Partitions *int64 `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// The number of producers.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProducerCount *string `json:"ProducerCount,omitnil,omitempty" name:"ProducerCount"`

	// The size of all stored messages in bytes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalSize *string `json:"TotalSize,omitnil,omitempty" name:"TotalSize"`

	// Subpartitions in a partitioned topic.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubTopicSets []*PartitionsTopic `json:"SubTopicSets,omitnil,omitempty" name:"SubTopicSets"`

	// Topic type description:
	// 0: General message;
	// 1: Globally sequential message;
	// 2: Partitionally sequential message;
	// 3: Retry letter topic;
	// 4: Dead letter topic;
	// 5: Transaction message.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicType *uint64 `json:"TopicType,omitnil,omitempty" name:"TopicType"`

	// Environment (namespace) name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`

	// Remarks (up to 128 characters).
	// Note: This field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Creation time.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Last modified.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// The maximum number of producers.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProducerLimit *string `json:"ProducerLimit,omitnil,omitempty" name:"ProducerLimit"`

	// The maximum number of consumers.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConsumerLimit *string `json:"ConsumerLimit,omitnil,omitempty" name:"ConsumerLimit"`

	// `0`: Non-persistent and non-partitioned
	// `1`: Non-persistent and partitioned
	// `2`: Persistent and non-partitioned
	// `3`: Persistent and partitioned
	// Note: This field may return null, indicating that no valid values can be obtained.
	PulsarTopicType *int64 `json:"PulsarTopicType,omitnil,omitempty" name:"PulsarTopicType"`

	// Retention period for unconsumed messages in seconds.
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"`

	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Tenant alias customized by users. if there is no, reuse the professional cluster ID.
	Tenant *string `json:"Tenant,omitnil,omitempty" name:"Tenant"`

	// Whether exception consumer isolation is enabled.
	IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"`

	// Specifies the consumer Ack timeout period in seconds.
	AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"`
}

type TopicRecord struct {
	// Environment (namespace) name.
	EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"`

	// Topic name.
	TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"`
}

type TopicStats struct {
	// Broker node.
	// Note: This field may return null, indicating that no valid values can be obtained.
	BrokerName *string `json:"BrokerName,omitnil,omitempty" name:"BrokerName"`

	// Queue number.
	// Note: This field may return null, indicating that no valid values can be obtained.
	QueueId *int64 `json:"QueueId,omitnil,omitempty" name:"QueueId"`

	// Minimum offset.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MinOffset *int64 `json:"MinOffset,omitnil,omitempty" name:"MinOffset"`

	// Specifies the maximum offset.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxOffset *int64 `json:"MaxOffset,omitnil,omitempty" name:"MaxOffset"`

	// Message count.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MessageCount *int64 `json:"MessageCount,omitnil,omitempty" name:"MessageCount"`

	// Last message write time.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LastUpdateTimestamp *int64 `json:"LastUpdateTimestamp,omitnil,omitempty" name:"LastUpdateTimestamp"`
}

type TraceResult struct {
	// Stage.
	Stage *string `json:"Stage,omitnil,omitempty" name:"Stage"`

	// Content details
	Data *string `json:"Data,omitnil,omitempty" name:"Data"`
}

// Predefined struct for user
type UnbindCmqDeadLetterRequestParams struct {
	// Source queue name of dead letter policy. Calling this API will clear the dead letter queue policy of this queue.
	SourceQueueName *string `json:"SourceQueueName,omitnil,omitempty" name:"SourceQueueName"`
}

type UnbindCmqDeadLetterRequest struct {
	*tchttp.BaseRequest
	
	// Source queue name of dead letter policy. Calling this API will clear the dead letter queue policy of this queue.
	SourceQueueName *string `json:"SourceQueueName,omitnil,omitempty" name:"SourceQueueName"`
}

func (r *UnbindCmqDeadLetterRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UnbindCmqDeadLetterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SourceQueueName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UnbindCmqDeadLetterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type UnbindCmqDeadLetterResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type UnbindCmqDeadLetterResponse struct {
	*tchttp.BaseResponse
	Response *UnbindCmqDeadLetterResponseParams `json:"Response"`
}

func (r *UnbindCmqDeadLetterResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UnbindCmqDeadLetterResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type VirtualHostQuota struct {

	MaxVirtualHost *int64 `json:"MaxVirtualHost,omitnil,omitempty" name:"MaxVirtualHost"`

	// Number of created vhosts.
	UsedVirtualHost *int64 `json:"UsedVirtualHost,omitnil,omitempty" name:"UsedVirtualHost"`

	// Specifies the maximum number of connections allowed per vhost.
	MaxConnectionPerVhost *int64 `json:"MaxConnectionPerVhost,omitnil,omitempty" name:"MaxConnectionPerVhost"`

	// Specifies the maximum number of switches allowed in one vhost.
	MaxExchangePerVhost *int64 `json:"MaxExchangePerVhost,omitnil,omitempty" name:"MaxExchangePerVhost"`

	// Specifies the maximum number of queue machines allowed in one vhost.
	MaxQueuePerVhost *int64 `json:"MaxQueuePerVhost,omitnil,omitempty" name:"MaxQueuePerVhost"`
}

type VpcBindRecord struct {
	// Tenant VPC ID
	UniqueVpcId *string `json:"UniqueVpcId,omitnil,omitempty" name:"UniqueVpcId"`

	// Tenant VPC subnet ID
	UniqueSubnetId *string `json:"UniqueSubnetId,omitnil,omitempty" name:"UniqueSubnetId"`

	// Route ID
	RouterId *string `json:"RouterId,omitnil,omitempty" name:"RouterId"`

	// VPC ID
	Ip *string `json:"Ip,omitnil,omitempty" name:"Ip"`

	// VPC port
	Port *uint64 `json:"Port,omitnil,omitempty" name:"Port"`

	// Remarks (up to 128 characters)
	// Note: this field may return null, indicating that no valid values can be obtained.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

type VpcConfig struct {
	// VPC ID
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`
}

type VpcEndpointInfo struct {

	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`


	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`


	VpcEndpoint *string `json:"VpcEndpoint,omitnil,omitempty" name:"VpcEndpoint"`

	// Access point status. valid values: OFF, ON, CREATING, DELETING.
	VpcDataStreamEndpointStatus *string `json:"VpcDataStreamEndpointStatus,omitnil,omitempty" name:"VpcDataStreamEndpointStatus"`

	// Encrypted TLS data stream access point.
	VpcTlsEndpoint *string `json:"VpcTlsEndpoint,omitnil,omitempty" name:"VpcTlsEndpoint"`
}

type VpcInfo struct {
	// VPC information
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet information.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`
}